原标题:实战:python可视化疫情数据之项目准备(1)
本章将完成疫情数据采集项目的搭建和配置信息完善。
1. 安装scrapy
$ pip3 install scrapy
2. 创建爬虫项目
$ scrapy startproject spider$ cd spider
3. 创建爬虫
$ scrapy genspider dxy dxy.cn
# scrapy genspider + 爬虫名 + 爬取域
如果在一个爬虫项目里的具体"爬虫"太多,可以执行 scrapy list 查看创建里的所有爬虫。
4. 运行刚刚创建好的爬虫
$ scrapy crawl dxy
如果运行之后, 没有出现报错问题,就说明刚已经正确地创建好了爬虫。
5. 修改几个创建的配置信息:
修改它们的目的:
第一,缓减目标网站的请求压力。
第二,减少请求被限制的危险。
找到项目中的settings.py 文件:
# 将 ROBOTSTXT_OBEY 设置为 False,如果没找到这个配置项,直接添加一个。
# 它的默认值为True,表示爬虫在运行时会遵守 robots.txt 中的规则。
# robots.txt是遵循Robot协议的一个文件,它保存在网站的服务器中,
# 其中包含网站的哪些目录下的网页不希望被别人爬取,Scarpy 启动后,
# 会在第一时间去访问网站的robots.txt,来确定对这个网站的爬取范围。
ROBOTSTXT_OBEY = True
# 设置 DOWNLOAD_DELAY 参数,scrapy 会根据这个值,
#对每一个爬取请求有一个 (0.5,1.5)* DOWNLOAD_DELAY 的随机延时处理,
#这样做可以缓减目标网站的请求压力。减少被封的风险。
DOWNLOAD_DELAY = 1 # 我这里设置为1,表示1s
配置User-Agent:
首先,安装 scrapy-fake-userange包:
$ pip3 install scrapy-fake-useragent
然后,在settings.py 中配置scrape-fake-useragent:
DOWNLOADER_MIDDLEWARES = {
# 让框架默认的UserAgent中间件不起作用
'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware': None,
# 使用scrapy-fake-useragent提供的中间件
'scrapy_fake_useragent.middleware.RandomUserAgentMiddleware': 400,
}
到这里,我们的数据采集项目的搭建和基本的配置工作就基本完成。接下就开始数据的采集逻辑的实现。
对于爬虫,大家在使用时,一定要考虑到人家网站的情况,尽量不要给人家站点造成太大的压力,我们尽量不要进行恶意的无限制的执行抓取数据。
我们这个项目也仅供大家学习和正常的教学使用,希望大家周知。
责任编辑: