python爬蟲方法,robots.txt文件采集網(wǎng)站數(shù)據(jù)!

轉(zhuǎn)自人生苦短丨我愛python

在我抓取網(wǎng)站遇到瓶頸,想劍走偏鋒去解決時(shí),常常會(huì)先去看下該網(wǎng)站的robots.txt文件,有時(shí)會(huì)給你打開另一扇抓取之門。

寫爬蟲有很多苦惱的事情,比如:

1.訪問頻次太高被限制;

2.如何大量發(fā)現(xiàn)該網(wǎng)站的URL;

3.如何抓取一個(gè)網(wǎng)站新產(chǎn)生的URL,等等;

image
image

這些問題都困擾著爬蟲選手,如果有大量離散IP和賬號(hào),這些都不是問題,但是絕大部分公司都不具備這個(gè)條件的。

我們?cè)诠ぷ髦袑懙呐老x大多是一次性和臨時(shí)性的任務(wù),需要你快速完成工作就好,當(dāng)遇到上面情況,試著看下robots.txt文件。

舉個(gè)栗子:

老板給你布置一個(gè)任務(wù),把豆瓣每天新產(chǎn)生的影評(píng),書評(píng),小組帖子,同城帖子,個(gè)人日志抓取下來。

初想一下,這任務(wù)得有多大,豆瓣有1.6億注冊(cè)用戶,光是抓取個(gè)人日志這一項(xiàng)任務(wù),每個(gè)人的主頁你至少每天要訪問一次。

這每天就得訪問1.6億次,小組/同城帖子等那些還沒算在內(nèi)。

設(shè)計(jì)一個(gè)常規(guī)爬蟲,靠著那幾十個(gè)IP是完不成任務(wù)的。

初窺robots.txt

當(dāng)老板給你了上面的任務(wù),靠著你這一兩桿槍,你怎么完成,別給老板講技術(shù),他不懂,他只想要結(jié)果。

我們來看下豆瓣的robots.txt

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

image

看圖片上面紅框處,是兩個(gè)sitemap文件

打開sitemap_updated_index文件看一下:

image

里面是一個(gè)個(gè)壓縮文件,文件里面是豆瓣頭一天新產(chǎn)生的影評(píng),書評(píng),帖子等等,感興趣的可以去打開壓縮文件看一下。

也就是說每天你只需要訪問這個(gè)robots.txt里的sitemap文件就可以知道有哪些新產(chǎn)生的URL。

不用去遍歷豆瓣網(wǎng)站上那幾億個(gè)鏈接,極大節(jié)約了你的抓取時(shí)間和爬蟲設(shè)計(jì)復(fù)雜度,也降低了豆瓣網(wǎng)站的帶寬消耗,這是雙贏啊,哈哈。

上面通過robots.txt的sitemap文件找到了抓取一個(gè)網(wǎng)站新產(chǎn)生URL的偏方。沿著該思路也能解決發(fā)現(xiàn)網(wǎng)站大量URL的問題。

再舉個(gè)栗子:

老板又給你一個(gè)任務(wù),老板說上次抓豆瓣你說要大量IP才能搞定抓豆瓣每天新產(chǎn)生的帖子,這次給你1000個(gè)IP把天眼查上的幾千萬家企業(yè)工商信息抓取下來。

看著這么多IP你正留著口水,但是分析網(wǎng)站后發(fā)現(xiàn)這類網(wǎng)站的抓取入口很少(抓取入口是指頻道頁,聚合了很多鏈接的那種頁面)。

很容易就把儲(chǔ)備的URL抓完了,干看著這么多IP工作不飽滿。

如果一次性能找到這個(gè)網(wǎng)站幾萬乃至幾十萬個(gè)URL放進(jìn)待抓隊(duì)列里,就可以讓這么多IP工作飽滿起來,不會(huì)偷懶了。

我們來看他的robots.txt文件:

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

image
image

打開紅框處的sitemap,里面有3萬個(gè)公司的URL,上圖是1月3號(hào)生成的,那個(gè)URL是根據(jù)年月日生成的,你把URL改成1月2號(hào),又能看到2號(hào)的sitemap里的幾萬個(gè)公司URL,這樣就能發(fā)現(xiàn)十幾萬個(gè)種子URL供你抓取了。

PS:上面的sitemap其實(shí)也能解決抓取天眼查最近更新的,新產(chǎn)生URL的問題。

小小的一個(gè)取巧,既降低了爬蟲設(shè)計(jì)的復(fù)雜度,又降低了對(duì)方的帶寬消耗。

這在工作中非常適用,工作中不會(huì)在意你用的框架多好,只在意你做事的快慢和好壞。

作者:人生苦短丨我愛python
鏈接:http://www.itdecent.cn/p/91af3fbe4890
來源:簡(jiǎn)書
簡(jiǎn)書著作權(quán)歸作者所有,任何形式的轉(zhuǎn)載都請(qǐng)聯(lián)系作者獲得授權(quán)并注明出處。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 網(wǎng)絡(luò)爬蟲的君子協(xié)議 網(wǎng)絡(luò)爬蟲的尺寸 網(wǎng)絡(luò)爬蟲引發(fā)的問題 性能騷擾 法律風(fēng)險(xiǎn) 隱私泄露 網(wǎng)絡(luò)爬蟲的"性能騷擾"web...
    若與閱讀 33,906評(píng)論 2 43
  • 書名:《用python寫網(wǎng)絡(luò)爬蟲》,通過閱讀并記錄去學(xué)習(xí),如果文章有什么錯(cuò)誤的地方還希望指正本文參考了http:/...
    楓灬葉閱讀 3,005評(píng)論 2 2
  • 打開窗 任憑寒風(fēng) 吹亂我繁雜的思緒 凝望著黯淡的星空 突然 想起了遠(yuǎn)方的你 生命中 第一個(gè)讓我怦然心動(dòng)的女孩 ……...
    從心活過閱讀 657評(píng)論 41 78
  • 年輕時(shí),看著三毛浪跡天涯的故事,開始對(duì)「流浪」有了夢(mèng)幻般的憧憬,但那時(shí)的我們不似現(xiàn)在的年輕人,見多識(shí)廣,而敢於嘗試...
    在路上的豬閱讀 181評(píng)論 0 2

友情鏈接更多精彩內(nèi)容