2012-08-14 137 views
0

我開發了一個網絡爬蟲,現在我想尊重我爬行的網站的robots.txt文件。讓PHP網絡爬蟲尊重任何網站的robots.txt文件

我看,這是robots.txt文件結構:

User-agent: * 
Disallow: /~joe/junk.html 
Disallow: /~joe/foo.html 
Disallow: /~joe/bar.html 

我能讀,一行行,然後使用帶有空格爆炸作爲分隔符來查找數據。

是否有其他方式可以加載整個數據?

這種類型的文件是否有像XPath一樣的語言?

還是我必須解釋整個文件?

任何幫助,歡迎,甚至鏈接,重複若發現...

+0

嘿!我只是好奇,你是如何解決用戶代理的一部分?你寫了一個特殊的正則表達式來匹配用戶代理的結果:*? – directory 2012-10-31 15:39:40

+0

當我使用cURL時,用戶代理已經存儲在數據庫中,所以我知道我的cURL算法應該識別哪個用戶代理;和平的蛋糕 – 2012-11-01 06:51:48

+0

好吧,我做了下面的事情,我必須每小時蜘蛛100個網站。我每週讀一次robots.txt,用一個正則表達式代替用戶代理:*部分(包括禁止等等)直到下一個用戶代理(如果存在)。比我在每個網站的數據庫中存儲路徑爲正則表達式模式。比我在我的蜘蛛中使用正則表達式來看我是否被允許蜘蛛獲得我所獲得的鏈接的路徑。你如何看待這個? :)乾杯! – directory 2012-11-02 09:32:49

回答

1

的結構非常簡單,所以你能做的最好的事情可能是分析你自己的文件。我會逐行讀取它,正如您所說的查找關鍵字,如用戶代理,Disallow等。

+0

是的,那是我會做什麼,如果我沒有得到明智的答案;我期待得到一個明智的答案,因爲我發現XPath有它自己的語言:d;也許我很幸運,我學到了新的 – 2012-08-14 13:51:27

+0

afaik XPath是XML專用的,因此不會幫助你在robots.txt文件中加入節點... – user871784 2012-08-14 14:11:51

+0

只是問,確保 – 2012-08-14 20:19:28