0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何用robots.txt快速抓取网站

电子工程师 来源:cc 2019-01-10 09:08 次阅读

在我抓取网站遇到瓶颈,想剑走偏锋去解决时,常常会先去看下该网站的robots.txt文件,有时会给你打开另一扇抓取之门。

写爬虫有很多苦恼的事情,比如:

1.访问频次太高被限制;

2.如何大量发现该网站的URL;

3.如何抓取一个网站新产生的URL,等等;

这些问题都困扰着爬虫选手,如果有大量离散IP和账号,这些都不是问题,但是绝大部分公司都不具备这个条件的。

我们在工作中写的爬虫大多是一次性和临时性的任务,需要你快速完成工作就好,当遇到上面情况,试着看下robots.txt文件。

举个栗子:

老板给你布置一个任务,把豆瓣每天新产生的影评,书评,小组帖子,同城帖子,个人日志抓取下来。

初想一下,这任务得有多大,豆瓣有1.6亿注册用户,光是抓取个人日志这一项任务,每个人的主页你至少每天要访问一次。

这每天就得访问1.6亿次,小组/同城帖子等那些还没算在内。

设计一个常规爬虫,靠着那几十个IP是完不成任务的。

初窥robots.txt

当老板给你了上面的任务,靠着你这一两杆枪,你怎么完成,别给老板讲技术,他不懂,他只想要结果。

我们来看下豆瓣的robots.txt

https://www.douban.com/robots.txt

看图片上面红框处,是两个sitemap文件

打开sitemap_updated_index文件看一下:

里面是一个个压缩文件,文件里面是豆瓣头一天新产生的影评,书评,帖子等等,感兴趣的可以去打开压缩文件看一下。

也就是说每天你只需要访问这个robots.txt里的sitemap文件就可以知道有哪些新产生的URL。

不用去遍历豆瓣网站上那几亿个链接,极大节约了你的抓取时间和爬虫设计复杂度,也降低了豆瓣网站的带宽消耗,这是双赢啊,哈哈。

上面通过robots.txt的sitemap文件找到了抓取一个网站新产生URL的偏方。沿着该思路也能解决发现网站大量URL的问题。

再举个栗子:

老板又给你一个任务,老板说上次抓豆瓣你说要大量IP才能搞定抓豆瓣每天新产生的帖子,这次给你1000个IP把天眼查上的几千万家企业工商信息抓取下来。

看着这么多IP你正留着口水,但是分析网站后发现这类网站的抓取入口很少(抓取入口是指频道页,聚合了很多链接的那种页面)。

很容易就把储备的URL抓完了,干看着这么多IP工作不饱满。

如果一次性能找到这个网站几万乃至几十万个URL放进待抓队列里,就可以让这么多IP工作饱满起来,不会偷懒了。

我们来看他的robots.txt文件:

https://www.tianyancha.com/robots.txt

打开红框处的sitemap,里面有3万个公司的URL,上图是1月3号生成的,那个URL是根据年月日生成的,你把URL改成1月2号,又能看到2号的sitemap里的几万个公司URL,这样就能发现十几万个种子URL供你抓取了。

PS:上面的sitemap其实也能解决抓取天眼查最近更新的,新产生URL的问题。

小小的一个取巧,既降低了爬虫设计的复杂度,又降低了对方的带宽消耗。

这在工作中非常适用,工作中不会在意你用的框架多好,只在意你做事的快慢和好坏。

善于看robots.txt文件你会发现一些别有洞天的东西。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • python
    +关注

    关注

    51

    文章

    4667

    浏览量

    83440
  • 爬虫
    +关注

    关注

    0

    文章

    77

    浏览量

    6487

原文标题:Python爬虫小偏方:如何用robots.txt快速抓取网站?

文章出处:【微信号:rgznai100,微信公众号:rgznai100】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    robots.txt用法

    robots.txt文件里有中文等非英语字符,请确定该文件是由UTF-8编码编写。 robots.txt(统一小写)是一种存放于网站根目录下的ASCII编码的文本文件,它通常告诉网络搜索引擎的漫游器
    发表于 09-10 21:19

    如何抓取每个Barcode对应的信息,并将其显示出来

    *.TXT文件中的内容,*.txt文件是一个实时更新(30s更新一次)。*.txt文件内容主要包括barcode,日期和时间,DCD。见附件3)抓取每个Barcode对应的信息,并将其
    发表于 02-21 22:20

    读取txt文件

    何用labview读取一个8列多行的txt文档
    发表于 09-19 17:05

    使用curl+wget抓取网页方法

    连接自动断掉放弃连接2、 proxy代理方式抓取proxy代理下载,是通过连接一台中间服务器间接下载url网页的过程,不是url直接连接网站服务器下载两个著名的免费代理网站
    发表于 02-25 09:54

    CITNO Skill增加快速抓取功能咯

    快速抓取元件功能用在器件布局上发挥很大的作用,再也不需要为了抓个元件来回拖动屏幕,来回托动屏幕费时费力,伤眼,效率低。有了这个工具不管你要的器件在画布的任何位置都能马上挂在当前屏幕的光标上。程序下载百度下吧或3w点citno点com
    发表于 05-12 20:27

    labview如何把tdms转成TXT格式

    现在有一个tdms格式的文件,如何用MATLAB打开呢,没有找到相关的资料介绍,就想着先把tdms格式的文件转换成TXT文件格式,然后再用MATLAB打开。但是我这个tdms格式的文件特别大,想同时分块转成n个txt文件,请教大
    发表于 03-11 14:19

    Altium设计中如何抓取圆环的圆心移动?

    抓取圆心移动能够更加方便我们去精确的设计,那如何能更快速抓取到圆心呢?
    发表于 11-13 17:03

    Altium设计中如何抓取圆环的圆心移动?

    抓取圆心移动能够更加方便我们去精确的设计,那如何能更快速抓取到圆心呢?操作如下:在AD09中,可以放置一个辅助的过孔到圆心,移动圆环的时候直接抓取过孔的圆心就好了,至于怎么将过孔放到
    发表于 11-19 10:46

    使用Python的Web爬网提示和技巧

    main_price。  3.陷阱  3.1检查robots.txt  网站抓取规则可在robots.txt文件中找到。您可以通过在主域名(例如)之后编写
    发表于 10-15 16:08

    python网络爬虫概述

    、MySQL、MongoDB、Redis …关于爬虫的合法性几乎每个网站都有一个名为robots.txt的文档,当然也有有些网站没有设定。对于没有设定robots.txt
    发表于 03-21 16:51

    何用百度硬盘搜索将PDF转换为文本文件txt

    何用百度硬盘搜索将PDF转换为文本文件txt的方法     现在有很多“PDF”转换为“TXT”的软件,不
    发表于 10-12 01:54 1628次阅读
    如<b class='flag-5'>何用</b>百度硬盘搜索将PDF转换为文本文件<b class='flag-5'>txt</b>

    何用NetShell快速完成重置Internet协议

    何用NetShell快速完成重置Internet协议 Internet协议是目前我们最常用的协议之一,于是我研究了一下重置Internet协议的步骤和语句
    发表于 03-29 16:56 891次阅读

    如何才能使用c#实现网站数据的抓取

    何用c# 实现网站数据的抓取?首先大家需要清楚一点的是:任何网站的页面,无论是php、jsp、aspx这些动态页面还是用后台程序生成的静态页面都是可以在浏览器中查看其HTML源文件的
    发表于 10-08 17:46 1次下载

    robotstxt robots.txt解析器

    ./oschina_soft/robotstxt.zip
    发表于 06-22 14:27 2次下载
    robotstxt <b class='flag-5'>robots.txt</b>解析器

    何用Burpsuite抓取exe数据包?

    前几天在群里看到有师傅在问如何用Burpsuite抓取exe数据包的问题?所以想着写篇文章简单记录一下Burpsuite+Proxifier抓取exe数据包的方法。
    的头像 发表于 06-12 16:12 3260次阅读
    如<b class='flag-5'>何用</b>Burpsuite<b class='flag-5'>抓取</b>exe数据包?