【小组作业】Web Crawler

2019-09-25 15:33:39 浏览数 (1)

本文作者:小白虫(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),会把代码放上去。

附录:

0 人点赞