概览
由于工作需要,以及之前的经验积累,决定尝试用scrapy爬虫框架爬取部分数据。
这是我第二次尝试学习scrapy框架,第一次学习无疾而终(那时候没有工作压力)。
该篇我命名为初窥门径
问题
1. 安装问题
直接使用pip安装scrapy模块是报错:Microsoft Visual C++ 14.0 is required
建议参考Microsoft Visual C++ 14.0 is required 的解决方案下载文件并安装即可
附:
- Microsoft 官网没有14.0的包,15.0的包下载了貌似没用
- 在安装了python3 和 Anaconda3的情况下, 请使用pip3 安装命令,直接使用pip安装的包是安装到Anaconda 环境里面了。(估计是跟路径的设置有关)
- 如果在网络受限的环境情况下,可以给pip使用代理下载,格式如下:
pip3 install --proxy=http://127.0.0.1:8080 scrapy
2. 创建项目
在cmd中使用 scrapy startproject project_name时,我遇到了以下问题
- ImportError: No module named win32api
建议参考:Scrapy运行ImportError: No module named win32api错误
命令:pip install pypiwin32 - 在pip安装该模块时,总是会报另外一个错误:ReadTimeoutError
建议参考:Windows下,pip安装时ReadTimeoutError解决办法
命令:pip --default-timeout=100 install -U pypiwin32 - 然后会报错:No module named 'urllib2'
这是因为scrapy的piplines.py里面使用了相应的包
建议用requests模块重写这部分的逻辑
代码:
import requests
response = requests.get(url)
- 因为网路问题,爬虫在爬取的时候,需要增加代理。
建议参考:给Scrapy添加代理;关于这块的代理添加的文章大多都是这篇。。。
我这边是直接在piplines.py里面直接更改爬取逻辑的:
import requests
proxies = {'http':'http://127.0.0.1:8080','https':'http://127.0.0.1:8080'}
response = requests.get(url,proxies = proxies)
虽然我也参考了方法二,中间件那个,但是对我这边没什么用。