在我抓取网站遇到瓶颈,想剑走偏锋去解决时,常常会先去看下该网站的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文件你会发现一些别有洞天的东西。
华三(H3C)高速电缆型号大全
超声波风速仪品牌有哪些?
Vitesse信号完整性专家将在硅谷发表演讲
威联通推出新款商用NAS 以层级快照对抗勒索病毒
高通面向高性能5G移动终端推出下一代高通射频前端解决方案
如何用robots.txt快速抓取网站
壹沓科技助力直播电商行业“数字化”转型,制胜双十二
小米Note2第一次现货开卖!双曲面+OLED售2799元
电压变化对无功补偿设备有影响吗
在不久的将来电动汽车将会取缔燃油车的地位
华为p10、华为p10plus价格被议的同时小问题不断,网友发问华为p10真值这售价?
带平衡电抗器的双反星形可控整流电路
华为Mate9曲面屏系列缺货,不要把锅甩给背锅侠三星
加密货币和区块链行业会越做越好
中国联通手机营业厅App已正式上线了5G信号覆盖查询功能
华为面对“芯片断供”危机 联发科或成受益对象
特锐祥贴片Y电容有哪些优势?4大优势介绍!
浅谈 | 高低温环境下的车载屏幕功能耐久与触屏精度自动化测试
固态继电器原理及选型
光学轮廓仪检测原理是什么