本文作者:小白虫(Ms08067实验室Python渗透小组成员)
前言
<这里用的scrapy框架,来编写爬虫,官方文档(https://docs.scrapy.org/en/latest/)>
具体功能实现:爬取网站所有链接,探测网页状态,并加随机延迟绕过防护。
1、代码流程
2、代码编写
2.1 item.py编写
这里爬取要目标是爬取网页所有链接。
2.2 link.py 编写
这里默认生成的是要爬取的域名,是在使用scrapy命令行生成爬虫文件时候输入的域名,为了便于指定爬取域名,所以这里改成输入指定域名。然后开始编写parse函数(parse负责处理response并返回处理的数据以及(/或)跟进的URL,该方法及其他的Request回调函数必须返回一个包含 Request、dict或 Item 的可迭代的对象。)
首先xpath(‘//a[@href]’)提取页面内所有链接,之后循环处理url,先调用之前写好的item,再处理每个url,紧接着继续使用当前url,迭代爬取。
2.3 seting.py编写
前面的只要按图上的配置就可以了,最后一个图是就是设置随机延时访问,scrapy自带的功能,只要取消注释就可以了。
还有就是这里scrapy默认只爬取状态码200-300页面,如果想爬取其他的在这里添加。
2.4 pipeline.py编写
这里主要的就是process_item, 前面的init函数就是,打开要写入的url文件。
这里处理写入过程,先检测url是否已经存在,然后再添加url’。
这里是检测网页http状态码,利用requests库来获取网页状态码。
最后,运行代码就可以了。效果图见附录。
小结
第一次写讲解,讲的不好,只是利用scrapy框架实现爬虫的基本功能,后续我会继续改进代码。
github(https://github.com/buddhalikecat),会把代码放上去。