编写第一个网络爬虫

1.重试下载确保download函数在5xx错误时候重试下载


2.设置用户代理

为了下载可靠,我们需要控制用户代理的设定,需要在download中设置一个默认的用户代理“wswp”


3.网站地图爬虫

解析网站地图,用一个简单的正则表达式,从<loc>标签中提取url(在这里,要先查看html,查看url在哪里,然后写正则表达式)


4 id遍历爬虫

在这我们把http://bbs.csdn.net/topics/392192840/作为爬虫的对象

根据url来看,只有url结尾处有所区别,包括话题和ID

一般情况下服务器会忽略这个字符串,只使用ID来匹配数据库中的操作记录,

下面是代码片段


上面代码实现的爬虫需要五次下载错误才会停止遍历。避免了因为中途的ID不可以导致停止遍历

5.链接爬虫

在这里,我们使用正则表达式来确定需要下载哪些页面,下面是代码


高级功能

解析robots.txt

1.使用Python自带的robotparser模块,首先模块先加载robot.txt,然后通过can_fetch,来确定制定的用户代理是否允许访问网页

2.当用户代理设置为badcrawler,模块返回结果表明无法获取网页,所以要在crawl中添加检查

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本内容为《用Python写网络爬虫》书籍内容,有兴趣的读者可以购买本书,本章的代码皆可在Python3中运行。为了...
    海人为记阅读 6,691评论 0 5
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,292评论 19 139
  • 书名:《用python写网络爬虫》,通过阅读并记录去学习,如果文章有什么错误的地方还希望指正本文参考了http:/...
    枫灬叶阅读 7,923评论 2 2
  • 抬头望天,俯身看地,一俯一仰之间,时间在生活中流逝。——题记。 常常看着书本发呆,大脑天马行空的乱象或一片空白呆若...
    小佳七v阅读 3,635评论 0 0
  • 小长假来袭,大家都准备好了吗?一大波旅游景点你想好去哪儿了吗?嗯哼……如果没有……那么……跟着小编一块儿来...
    fxl123阅读 1,911评论 0 0