日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

在Prefetcher中取消robots.txt的限制

發布時間:2025/7/25 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在Prefetcher中取消robots.txt的限制 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  Robots.txt是一種專門用于搜索引擎網絡爬蟲的文件,當構造一個網站時,如果作者希望該網站的內容被搜索引擎收錄,就可以在網站中創建一個純文本文件robots.txt,在這個文件中,聲明該網站不想被robot訪問的部分。這樣,該網站的部分或全部內容就可以不被搜索引擎收錄了,或者指定搜索引擎只收錄指定的內容。

  Heritrix在其說明文檔中,表明它是一個完全遵守robots.txt協議的網絡爬蟲。這一點固然在宣傳上起到了一定的作用。但是,在實際的網頁采集過程中,這并不是一種最好的作法。因為大部分的網站并不會放置一個robots.txt文件以供搜索引擎讀取,在互聯網信息以幾何級數增長的今天,網站總是在希望自己的內容不被人所利用的同時,又希望自己能夠被更多的用戶從搜索引擎上檢索到。

  不過幸好,robots.txt協議本身只是一種附加的協議,網站本身并不能了解究竟哪些Socket聯接屬于爬蟲哪些屬于正常的瀏覽器連接。所以,不遵守robos.txt協議成為了更多搜索引擎的首選。

  使用過Heritrix的朋友就會發現這樣一個問題,如果當一個網站沒有放置robots.txt文件時,Heritrix總是要花上大量的時間試圖去訪問這樣一個文件,甚至可能retry很多次。這無疑很大的降低了抓取效率。因此,為了提高抓取的效率,可以試著將對robots.txt的訪問部分去除。

  在Heritrix中,對robots.txt文件的處理是處于PreconditionEnforcer這個Processor中的。PreconditionEnforcer是一個Prefetcher,當處理時,總是需要考慮一下當前這個鏈接是否有什么先決條件要先被滿足的,而對robots.txt的訪問則正好是其中之一。在PreconditionEnforcer中,有一個private類型的方法,它的方法簽名為:
private boolean considerRobotsPreconditions(CrawlURI curi)

  PreconditionEnforcer文件的路徑是:org.archive.crawler.prefetch.PreconditionEnforcer.java。

  ?把PreconditionEnforcer.java中的private boolean considerRobotsPreconditions(CrawlURI curi){}修改為

1 private boolean considerRobotsPreconditions(CrawlURI curi) { 2 return false; 3 }

  或者把代碼的實現部分注釋掉,最后return語句改為return false;

  該方法的含義為:在進行對參數所表示的鏈接的抓取前,看一下是否存在一個由robots.txt所決定的先決條件。很顯然,如果對每個鏈接都有這樣的處理。那么,很有可能導致整個抓取任務的失敗。因此,需要對它進行調整。

  這個方法返回true時的含義為需要考慮robots.txt文件,返回false時則表示不需要考慮robots.txt文件,可以繼續將鏈接傳遞給后面的處理器。所以,最簡單的修改辦法就是將這個方法整個注釋掉,只留下一個false的返回值。經過筆者的試驗,這種方法完全可行,抓取的速度提高了至少一半以上!

轉載于:https://www.cnblogs.com/zhjsll/p/4265477.html

總結

以上是生活随笔為你收集整理的在Prefetcher中取消robots.txt的限制的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。