前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【小组作业】Web Crawler

【小组作业】Web Crawler

作者头像
Ms08067安全实验室
发布2019-09-25 15:33:39
6310
发布2019-09-25 15:33:39
举报

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

附录:

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Ms08067安全实验室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 2、代码编写
    • 2.1 item.py编写
      • 2.2 link.py 编写
        • 2.3 seting.py编写
          • 2.4 pipeline.py编写
          • 小结
          • 附录:
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档