Python常见使用问题
by 王宇韬
2023-11 更新,百度的正则表达式需要调整,如下:
然后因为百度新闻某条新闻有时候没有日期,直接打印会出现list out of range的报错,所以打印的时候可以不要打印日期。
例如如下代码:
然后有的时候百度会反爬,这时候可以把网址url中的https改成http,或者用之后学的selenium库,或者加上ip代理反爬(参考爬虫进阶相关书籍,jd搜王宇韬可以看到,绿色封面的)
2022-08来看,好像百度新闻通过requests库不太好爬了,解决方法可以通过selenium库爬取源代码之后,然后通过正则表达式进行解析。
2022-09更新。
新的解决方法:百度那个主要是ssl证书认证的问题,这就会导致请求发过去一直没有响应,卡住了,解决方法,把https换成http,示例网址:http://www.baidu.com/s?tn=news&rtt=1&bsst=1&cl=2&word=阿里巴巴。
然后正则表达式调整下,最新代码如下:
同理,之后的爬取多页以及其他的相关代码,也需要类似更新下,代码如下:
selenium库的find_element_by_xpath相关功能有更新,需要参考如下帖子进行修改:解决Selenium中用find_elements_by_xpath()无法获取属性值问题
# 如果chromedriver不适配,可以百度搜索对应板块的chromedriver(例如搜索:chromedriver 版本号)
# 可以参考这个帖子:https://blog.csdn.net/Z_Lisa/article/details/133307151
# 不同版本的chrome和chromedriver可以参考这个帖子:https://googlechromelabs.github.io/chrome-for-testing/#stable
# 把chromedriver.exe放到“anaconda3\Scripts”对应文件夹下面
list index out of range的中文翻译是:“列表索引超出范围”。这个报错的意思是因为列表长度不一致导致的打印报错,比如title列表的长度是10,也即里面有10个元素,而上图中date列表的长度为9,也即里面只有9个元素,那么当循环到第10次的时候,因为date没有第10个元素,就会产生list index out of range的报错。
出现这种情况的时候,可以打印下相关列表,比如使用如下代码:
这样可以查看通过正则表达式提取的各个列表的内容,或者通过如下代码查看各个列表的长度:
这样如果发现没有提取到内容,那么有可能是网站改版 因此需要修改正则表达式(这个请参考正则表达式相关章节进行学习与修改,我不一定能及时更新代码),或者由于某些网站自己的问题,比如百度新闻有的时候新闻没有日期(如下图所示),导致date该列表只有9个元素,导致在最后for循环打印的时候报错,如果有这种情况的话,就暂时不要打印日期相关代码。
以及如果通过requests库爬不到源代码了,那么可以试试以后会讲到的selenium库(爬虫的利器,不过速度会比requests库慢一点)。
有的时候代码运行错误,很大程度是标点符号是中文格式下的标点符号,切记要切换成英文格式下的标点符号。
有的时候代码运行错误,可能是因为缺少冒号与缩进,缩进就是一个Tab键,具体可以参考如下文档:https://shimo.im/docs/6cvCv187rTIaCJIu/ 《华小智智能系列3 - Python基础》。
有的时候,其实软件自带库(就类似于苹果手机里的APP)了,或者之前安装过了,那么如果出现如下情况,说明该库已经安装好了,就不是库没安装成功:(Requirement already satisfied的中文含义就是“要求已经满足”,即库已经安装成功)
如果对库不太理解的,可以参考如下文档:https://shimo.im/docs/6cvCv187rTIaCJIu/ 《华小智智能系列3 - Python基础》。
有的时候直接通过如下代码安装会特别慢,是因为服务器是在国外,国内下载会比较慢:
因为pip安装是从国外网站下载库,如果有时因为网络原因有些库下载不下来,那么这时候就可以通过清华镜像来安装相关库(清华镜像就是清华把相关库下载到清华服务器,然后供大家下载),具体操作是使用pip的时候在后面加上-i参数,指定pip源,代码如下:
其中xxx就是需要安装的库名,例如安装PDF文本解析库pdfplumber可以采用如下代码:
如下图所示:
有的时候会读取txt失败:
产生如下报错:
其实偶尔读取txt文件的时候会出现乱码现象(也即中文显示为奇怪字符,运行上述代码会出现类似“UnicodeDecodeError”这样的报错),或者出现如下图所示的无法读取的报错:
这时可以通过如下代码解决相关问题:
这里通过设置open()函数中的encoding编码参数为“utf-8”解决问题。这是因为如果出现“UnicodeDecodeError”这样的报错是因为读取中文的方式不正确,在计算机中中文有多种编码方式,常用的中文编码有‘utf-8’,‘gbk’,‘big5’等,如果上面的代码中的“utf-8”也还是乱码,则可以换成“gbk”等进行尝试,通常进行几次尝试就可以正确读取中文文本了,而英文文本则不需要担心这类情况,可以不修改encoding参数。
补充知识点:txt文件编码问题
如果运行txt写入程序出现报错“'gbk' codec can't encode character '\u2022'”,是因为有的电脑txt的编码方式为gbk中文编码,而如果读取的内容是utf-8中文编码就会导致中文乱码,解决办法为:设置encoding编码参数为utf-8,代码如下:
如果utf-8失败,则换成gbk试试即可。
补充知识点:文件相对路径与绝对路径
文件相对路径,即代码所在的文件夹,例如直接写“测试.txt”,就是在代码所在的文件夹生成txt文件。相对路径的另一种写法是“./测试.txt”,其中“./”表示的就是同级目录(如果是“../”则是表示代码所在文件夹的上级目录),相对路径的优势是在其他人的电脑运行时也无需修改文件路径。此外如果直接写“XXX”,而不加任何后缀的话,则表示代码所在文件夹的一个名为“XXX”的文件夹。
文件绝对路径,就是文件完整的路径名称,例如'E:\大数据分析\测试.txt'就是绝对路径,不过因为在Python中反斜杠“\”经常有特殊含义,比如说“\n”表示换行,所以通常建议写绝对路径的时候写两个反斜杠取消可能存在的单个反斜杠的特殊含义,写成'E:\\大数据分析\\测试.txt'。
除了用两个反斜杠外,还可以在文件路径的字符串前面加一个r,也可以取消单个反斜杠的特殊含义,或者用一个正斜杠'/'也可以用来表示两个反斜杠'\\',总结如下:
获取内容如下:
解决方法,点下这里可以换行显示,以及接着往下看教学视频 就知道为啥这里显示的内容不多(因为还需要设置下headers参数)
如果出现百度图片识别 & 文字识别接口调用失败问题,是因为我提供的ID/KEY被人使用的太多,已经超出每日使用次数了,因此需要学习者自己根据视频里的方法注册账号,获取自己的APP_ID,API_KEY,SECRET_KEY。
有时在Pycharm中,因为表格列较多,中间一些列展示为省略号了。
如果想展示所有列,可以加入如下代码:
参考文档:https://blog.csdn.net/sd116460/article/details/108710293
参考如下文档,如果不行就再自己百度看看:
解决"Can't connect to HTTPS URL because the SSL module is not available.问题_沙度灬的博客-CSDN博客
tushare老版本可能调取不出来数据了(如下图所示),需要使用新版tushare;新版tushare教程如下:https://shimo.im/docs/PGWdY6Q8xDKpvDXG/ 《Tushare Pro使用教程(一)》,可复制链接后用石墨文档 App 或小程序打开。
最常问的问题:库的安装问题,如果出现库安装不了,可以用清华镜像进行安装,代码如下:
其中xxx为要安装的库名,例如第十章的pdfplumber安装,代码如下:
如果是代码问题,请参考本文档第二大章:二、Python基础知识常见问题
问题:怎么安装Python最好?
解答:经过无数坑的走过(不推荐Python官网下载Python,那样会有很多麻烦,其中配置环境对小白来说极其不友好),推荐Anaconda安装法,其官网为:Anaconda 的官网下载地址 https://www.anaconda.com/download/ ,或者直接百度搜索Anaconda,进入官网,选择下载即可,我们这边选择Python3.7版本,它默认是64位的电脑,如果你的电脑很旧,那可能是32位的,选择32位的即可,如果是Mac或者Linux选择相对应的版本即可。
如果还是遇到问题,具体可以参考《Python金融大数据挖掘与分析全流程详解》中Python基础电子版:https://shimo.im/docs/MHOHPwdm6qExvItL/ 《1.华小智系列 - Python基础(案例版)》第一章,有非常详细的防采坑技巧。(也非常建议看着如下这个文档来进行安装,里面的内容更加详细)
问题:在官网安装的Anaconda,通过Mac无法打开。
解决办法:更新IOS即可。
原因:一般来说 10.15 的时候 anaconda 的导览页面 不兼容 所以做了特别是配 也就是说 如果用旧版的 macOS 系统 安装最新版本的 anaconda 的话 就会出现这种情况
有的时候Anaconda官网下载速度很慢,那么可以推荐可以到清华大学TUNA镜像站下载Anaconda3安装程序,网址为:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/。
Anaconda安装Python有着极为快速的环境配置方法,所谓环境配置,就是在电脑任何地方都可以访问Python程序,具体方法如下:
程序下载好了之后,这个我推荐不要改变默认安装路径,直接保存在C盘(也可以保存在D盘,但是文件名不要取中文,也即文件路径里不要有中文),防止出错,然后点击安装即可,这边有一个很重要的注意点:安装到下图这一步的时候,一定要把第一个勾给勾选上,因为这个对于初学者来说,就相当于自动配置好了环境变量,不然还得麻烦手动配置。如果这个按钮没有按,后面很多操作都会有问题,比如pip install XXX库的时候会显示没有pip,就是因为环境变量没有配置。
安装anaconda的时候,文件路径里不要有中文,否则可能会出现如下报错:
另外一个读者反映的问题解决方案,供参考:
对于初学者来说,推荐使用Anaconda自带的Spyder编辑器或者下载Pycharm编辑器,其中Spyder和Pycharm的使用技巧请参考如下文档:https://shimo.im/docs/MHOHPwdm6qExvItL/ 《1.华小智系列 - Python基础(案例版)》。
对于有了一定基础的同学,可以直接使用Anaconda自带的Jupyter Notebook编辑器,它自带分区块运行功能,不过自动纠错功能略弱于Pycharm,具体使用机器可以参考如下文档:
福利5 Jupyter Notebook的使用技巧
(类似Pycharm,个人感觉比Pycharm更适合个人学习)
https://shimo.im/docs/RxcCRtVGp9CkqvrW/
题外话:Pycharm是一款非常好的编译器,安装的时候会有些坑,初学者第一次使用的时候可能会很头疼,所以我特地录了一个非常详细的教学视频,大家可以看视频学的更好一点,如果不愿意花时间安装,那么你用Spyder来学之后的内容也是完全没有问题的。
PyCharm 也是一种 Python 的编译器,如果你嫌安装麻烦,用之前的Spyder编译器也是可以的,两者的功能是大致相同的。不过我们之后的教学都是使用Pycharm来进行讲解,因为Python界有这么一种说法,高手都用Pycharm,我们虽然是初学者,不妨都先来装一装高手。我选择Pycharm的原因,是觉得它的界面(见下图)比Spyder好看。
到官网 http://www.jetbrains.com/pycharm/download/#section=windows 下载PyCharm安装包,我们选择免费版(Community)就完全够用了。
下载完后,双击就可以安装了,安装过程中,一直选择Next和Install即可,其中这一页选择下面两项即可。
之后一直点击Next一直到最后的Finish即可,可以勾选下图的“Run PyCharm Community Edition”,然后点击Finish。
这样Pycharm就安装完成啦,不过第一次使用的时候坑会比较多,大家千万跟着我的接下来的步骤设置一下,一步步来就没问题的。下面的教程非常详细,相信每一位童鞋都能安装成功。
对于按完Finish之后的第一步:这个勾选“Do not import settings”
第二步:选择页面风格,建议选择左边默认的黑色风格。
第三步:选择辅助工具,直接跳过,啥也不需要选。
第四步:创建python文件。
第五步:文件进行命名,这一步千万记得点开Project Interpreter,勾选Existing interpreter。
然后点击最右边的,如下图:在弹出的页面中选择System Interpreter, 可以看到Interpreter变成了Anaconda3\python.exe,选择OK。
回到该页面后,点击Create即可创建新的Python Project。
第六步:关闭官方小技巧提示,等待最下面的Index缓冲完毕,它缓冲的过程其实是在配置你Python的运行环境。这个也是Pycharm第一次安装的时候一个比较让人头疼的地方,它得等Index缓冲完成后,才能顺畅地操作。第一次运行Pycharm的时候Index缓冲的时间较长,以后就好多了。
第七步:等到最下面的那个Index已经缓冲完毕后,我们可以放心的进行下一步操作啦:创建Python文件,如下图,点击之前创建的项目文件夹,然后右键,点击New,选择Python File。
将新的python文件命名为 hello world。
你之后如果要新建文件的话,一是可以在File里面选择New Project,如下图所示:
然后重复上诉步骤,注意在选Project Interpreter的时候勾选Existing interpreter。或者你直接把这个hello world的文件复制到你想要的文件夹,把它重命名一下即可。
第八步:在英文模式下输入print('hello world'),其中单引号双引号没有区别,但一定要在英文模式下:
这时候得等之前所说的Index缓冲结束后,我们在上右击,选择Run 'hello world'即可,这样就能成功运行程序并在下方输出hello world了。注意,如果之前说的index没有缓冲结束,你可能右击的时候还没有这个Run 'hello world',这个是因为你的运行环境还没有配置完毕。
之后你也可以通过点击界面右上角的绿色运行按钮,运行程序,或者按住快捷键Shift + F10也可以运行程序。不过我个人还是推荐右击文件然后选择Run 'Python文件名'的方式来运行程序,这样对初学者来说不太容易出错。
下面再对Pycharm的另外一个字体大小的设置做一个介绍,大家点击File,选择下图的Settings。
选择Settings中的Editor,选择Font,在右边的Size里可以调节显示字体的大小。
Pycharm还有个使用小技巧,就是你在Pycharm的图标上右击,可以看到最近使用过的Python文件,之后你就可以快速访问啦,如下图所示:
Pycharm使用常见问题:
Q1:为什么我第一次打开要等很久,才能进行下一步操作?
A1:第一次打开的时候都有一小会等待缓冲的时间,特别是第一次安装的时候,当等待最下面的Index转完了之后,再进行下面的操作就没有问题啦。
Q2:为什么我重新打开Pycharm的时候会提醒我说我没有Interpreter(运行环境)?如下图所示:
这个是因为你每次重新打开Pycharm的时候,它都默认你重新建立了一个project,你的python文件是属于这个project,如果这个project没有运行环境的话,python文件也没有办法运行,那么这个时候我们就需要配置下运行环境。我们点击上图右边的Configure Python interpreter(配置Python解释器),也即配置这个project的运行环境,进入Project Interpreter的界面。或者我们点击界面左上角的File,选择Settings,也能进入设置Project Interpreter的界面,如下图所示:
在上图可以看到Project Interpreter里面显示的是No interpreter,这个就是导致你每次重新打开Pycharm之后,Pycharm总是显示你没有配置运行环境。其实本质原因是因为你Pycharm默认的运行环境是空,所以每次新建一个Project后都没有运行环境。
那么如何解决这个问题呢?首先我们讲一个治标的方法,我们进入上图中的Project Interpreter界面后,我们选择右边的按钮,然后选择中的Show All,因为你之前已经运行成功过,所以肯定是环境存在的,只是你没有勾选而已,所以我们选择Show All来看看你的曾经用过的环境,然后选择它即可。如下图所示:
如果你这里一个运行环境都没有,那么就选择上图右边的加号,选择System Interpreter,看到右边是Anaconda\python.exe,选择Ok即可,如下图所示:
我再来讲一个治本的方法,那就是我们直接把Pycharm的默认设置给改了:点击File--点击Default settings(有的Pycharm版本里叫作Settings for New Projects):
选择Project Interpreter - 选上你安装好的interpreter,再点击右下Apply,然后点击OK退出即可。这样默认的interpreter就关联上了,如下图所示:
这里的重点是,我配置的是Default Settings(有的Pycharm版本里叫作Settings for New Projects)而不是单个项目的设置,这样以后打开Pycharm的时候就再也不用配置运行环境了,可谓一劳永逸了。
通过该按钮:
可以实现输出结果自动换行。请参考如下文档:
https://shimo.im/docs/237RCq79bikTR3tY/ 《Mac版Anaconda和Pycharm 安装流程》
如果用pip清华镜像库安装都失败的话,可以直接安装源文件(这个也方便在内网操作)
具体方法如下:
https://pypi.org/,这个网站能找到大部分的库。
https://packaging.python.org/tutorials/installing-packages/#use-pip-for-installing
如果有多个文件,那么注意下载适合自己Python版本的,例如https://pypi.org/project/wordcloud/#files网址中有很多源文件,那么其中cp39表示的是python3.9版本,cp38表示的是python3.8版本,以此类推。
如果是tar.gz等后缀文件,也是在下载文件所在文件夹的文件路径框里输入cmd后Enter运行(Shift + 右键,然后选择“在此处打开Powershell窗口”进入文件夹终端),进入文件终端后直接 pip install 文件名即可
Q:如何做到时间管理+精力管理
1.快速学习法
1.学习推荐倍速学习,通过视频(用来加速播放)+纸质的方式(例如将PPT一页4面进行打印,用来做笔记)来高效学习。视频如果一开始接受不了太快的速度,可以先1.5倍速,然后再2-3倍速,慢慢就会适应了,听不懂的时候可以适当放慢速度,最后复习的时候可以直接上2-3倍速。然后当没事的时候脑袋里可以回忆知识点,进行大脑沙盘演习,充分利用时间。
2.时间管理
注意利用好晚上和周末的时间,减少无效社交;
住的尽量离公司近一些(在地铁上你是很难学到东西的),这样自己的可支配时间会多些;
推荐能删除的就删除微博和抖音,除了娱乐,这两个软件价值较低(微博有的时候还越看越气),当初笔者痴迷抖音,后来Iphone的屏幕使用功能告诉我每天有2-3个小时在刷抖音,震惊,随后删除)。
3.精力管理
注意休息 + 加强锻炼
如下文档也含有很多办公福利:https://shimo.im/docs/WyTPtytcRWchthVt/ 《开学第一课|Python+金融科技(内含7大福利)》,建议有时间的同学可以好好阅读。
下面提供源代码及软件安装包,这里主要提供Windows版本的,如果是Mac电脑,可以去相关官网下载。
Python软件
Anaconda(这个就是Python的安装包)&Pycharm&Wampserver网盘下载地址:
链接: https://pan.baidu.com/s/1DWJ5ptC7jrkNr5IXPkD9Rw 提取码: p8w8
Python基础电子版(看电子版会比较方便):https://shimo.im/docs/6cvCv187rTIaCJIu/
https://shimo.im/docs/tHXXDPKgVcJtRDVj/ 《〈Python相关书籍〉资料下载汇总》
京东或者淘宝搜索“王宇韬”即可:
https://shimo.im/docs/tHXXDPKgVcJtRDVj/ 《<Python相关书籍>资料下载汇总》,可复制链接后用石墨文档 App 打开
https://shimo.im/docs/VYCvJC3jGTgj9tQv/ 《python微信常见问题整理》,可复制链接后用石墨文档 App 或小程序打开
Python基础教程:https://shimo.im/docs/6cvCv187rTIaCJIu/
Python软件:Anaconda(这个就是Python的安装包)&Pycharm&Wampserver网盘下载地址:
链接: https://pan.baidu.com/s/1DWJ5ptC7jrkNr5IXPkD9Rw 提取码: p8w8
《开学第一课|Python+金融科技(内含很多办公技巧和前沿知识)》:https://shimo.im/docs/WyTPtytcRWchthVt/
https://shimo.im/docs/L9kBM2e6PdTQxgqK/ 《学习Python的常见问题(思维层面)》,可复制链接后用石墨文档 App 或小程序打开