这阶段闲着没什么事把Python系统的学习了一下,基础学完之后练习着用Django搭建了一个Blog并使用Nginx+Gunicorn部署到阿里云服务器上(不得不佩服阿里云的客服啊,真的很关心我啊,看我服务器快到期了一个劲的给我发邮件,真的是很想念我啊。。。),想着爬点有意思的网站,最开始只是使用requests和urllib还有http.cookiejar库来模拟网络请求和模拟登录来练习一下基本功的(这里成功的拿到了我们公司的考勤记录,然后还有修改考勤信息的接口,那我是不是就可以做些事情了?放心吧,我是不会那么做的。。。)。
练习了基本的操作之后,当然就要找框架来进行爬虫实验啊。于是就在网上找Windows 64安装Scrapy的方法,查到的都是非常繁琐的安装方式,由于Scrapy有很多个依赖,所以在安装Scrapy之前你就要先安装他的所有的依赖啊,下面列举出部分依赖库:
lxml模块 cryptography模块 pywin32模块 Twisted模块 pyOpenSSL模块等等,大家想想啊,Python怎么会那么顺利的让我们安装完这里模块呢?答案是一定的。有些人会说,我就不信我直接一个命令pip install Scrapy看看能不能直接安装上,敲完命令直接之歌回车键,看见命令行工具上显示的安装过程还笑出声来,终于可以进行爬虫了,没想到最后出现了一个错误failed with error code 1 in C:\****\****\****\****\Temp\pip-build-5f9_epll\Twisted\,于是乎就查到原来没有Twisted这个依赖的模块,想着pip install Twisted最后命令行工具上还是继续报错,安装失败啊(pip install Twisted[windows_platform]这个命令也试过,没有什么用的)。
在这里告诉大家一个方法安装Twisted模块的方法啊,首先需要先安装wheel模块,这回使用pip install wheel不会报错的,直接安装成功啦。之后打开命令行工具输入Python进入Python环境(也就是输入Python命令),看到我的Python版本是3.6.1的,去https://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted这个地址下载对应版本的Twisted,
Twisted, an event-driven networking engine.
Twisted‑17.9.0‑cp27‑cp27m‑win32.whl
Twisted‑17.9.0‑cp27‑cp27m‑win_amd64.whl
Twisted‑17.9.0‑cp34‑cp34m‑win32.whl
Twisted‑17.9.0‑cp34‑cp34m‑win_amd64.whl
Twisted‑17.9.0‑cp35‑cp35m‑win32.whl
Twisted‑17.9.0‑cp35‑cp35m‑win_amd64.whl
Twisted‑17.9.0‑cp36‑cp36m‑win32.whl
Twisted‑17.9.0‑cp36‑cp36m‑win_amd64.whl
cp后面跟的数字是python的版本,比如现在我的python版本是3.5,那么需要下载cp35;
根据下面图片中的Python是win32还是arm64选择Twisted的版本,针对我的Python版本我下载了倒数第二个whl文件,之后进行安装pip install Twisted‑17.9.0‑cp36‑cp36m‑win32.whl(注意这里是文件全名),这时出现一个[filename.whl is not supported wheel on this platform]的错误,这时有人会说,楼主,你骗我。。。我这辈子都不会原谅你的。。。客官别急,遇到这种情况你就把win32和win64的版本都下下来分别安装试一下,我的系统是64位装arm64位的whl能成功
好了大功告成了,可以安装Scrapy了,如果出现缺少模块。那你就直接pip install ***进行安装吧,最难搞定的Twisted都搞定了还怕什么呢?
首先去https://www.anaconda.com/download/这个网站下载一个Anaconda客户端,并进行安装(网上有好多安装教程的),之后在命令行输入conda install scrapy命令就下载安装了Scrapy模块,就是这么简单,如果你使用conda install scrapy这个命令时出现Proceed ([y]/n)? 直接输入一个y点击回车就好了,就会在命令行工具上看见安装需要安装的模块,安装完直接输入Scrapy检验是否安装成功,如果出现pkg_resources.DistributionNotFound: The 'pyasn1-modules' distribution was not found and is required by service-identity类似的情况,那就使用pip install pyasn1-modules进行安装就行了。安装成功会像下面一样的:
好了,可以"收摊",回家吃饭了。。。