您好,登錄后才能下訂單哦!
本篇內容介紹了“怎么用Nutch抓取需要登錄的網站”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
Tomcat自身帶的后臺管理程序是需要用戶登錄的,這樣的網站如何用Nutch來爬呢?Nutch可以處理Http authentication(BASIC, DIGEST)這種稍顯簡單的認證,對于普遍流行的用戶自定義Form表單以Post或Get方式提交數據認證的情況,Nutch就無能為力了,就更不用說復雜驗證碼的認證方式了。
下面用一個簡單的例子說明如何配置Nutch,使其能爬需要Http authentication(BASIC, DIGEST)的站點。
1、修改Tomcat配置文件conf/tomcat-users.xml,增加如下配置然后重啟,一個用戶即可訪問所有資源:
<role rolename="admin-script"/> <role rolename="admin-gui"/> <role rolename="manager-script"/> <role rolename="manager-gui"/> <role rolename="manager-jmx"/> <role rolename="manager-status"/> <user password="admin" roles="admin-script,admin-gui,manager-script,manager-gui,manager-jmx,manager-status" username="admin"/>
2、修改Nutch配置文件conf/httpclient-auth.xml,增加如下配置,指定訪問特定網站的時候需要出示的用戶名和密碼:
<credentials username="admin" password="admin"> <authscope host="localhost" port="8080"/> </credentials>
3、啟用httpclient插件,在nutch-site.xml中重新指定配置項plugin.includes的值,把protocol-http改為protocol-httpclient:
<property> <name>plugin.includes</name> <value>protocol-httpclient|urlfilter-regex|parse-(html|tika)|index-(basic|anchor)|indexer-solr|scoring-opic|urlnormalizer-(pass|regex|basic)</value> </property>
4、準備注入的URL文件:
mkdir urls echo 'http://localhost:8080/' > urls/url
5、修改URL過濾文件conf/regex-urlfilter.txt限制抓取范圍:
#-[?*!@=] +^http://localhost:8080/ -.
6、運行爬蟲,參數為:
bin/nutch crawl urls -dir data -solr http://localhost:8983/solr/collection1 -depth 30 &
7、查看抓取下來的URL及其狀態發現,成功!
“怎么用Nutch抓取需要登錄的網站”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。