亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

nutch 抓取需要登錄的網頁

2019-11-14 20:57:55
字體:
來源:轉載
供稿:網友
nutch 抓取需要登錄的網頁

  題記:一步一坑,且行且珍惜

  最近接到任務,要利用nutch去抓取公司內部系統的文章,可是需要登錄才能抓到。對于一個做.net,不熟悉java,不知道hadoop,很少接觸linux的我,這個過程真是艱難且痛苦的,盲人摸象搬的折騰出來了,但是我對hadoop還是沒了解。這個東西在網上真的很難查到,我也是自己試驗,網上零碎的片段拼起來的。有些在網上可以隨便找打的,我就不詳細說明了,我只說明網上不好查到的內容。

  本文是在假設你已經會簡單使用nutch的條件下寫的,如果需要基礎配置,網上還是有較多的。

環境和軟件(linux+ant+nutch)

  

  step1:nutch 不支持表單登錄,這個必須要對其進行二次開發??墒窃趺淳幾g是個很大的問題。我在網上看到別人寫的windows+eclipse+cygwin,我自己配置了半天,但是還是沒搞出來,算了,還是用linux吧,誰叫nutch就是用linux,hadoop的呢。

  step2:去官網下載nutch-1.6-src,注意不是bin了,因為我們是要改代碼的?,F在nutch-2.1也出來了,但是我來之前就是用的1.6,沒辦法,接著做吧。

  step3: 去官網下載ant,找個最新版本下載就可以了。這個是用來編譯nutch的。我的版本是apache-ant-1.9.4-bin.tar.gz,但是ant版本并無太大影響。

  step4:為ant配置環境變量,這個方法在網上有很多講解,不細說了。

二次開發nutch

  怎么進行開發呢?由于我用eclipse沒有讓nutch跑起來,也不會編譯,所以我采用最原始的辦法,去改單個java文件,用ant去編譯。

step1:怎么實現登錄

  用了一個簡單粗暴的辦法,在每次進行http請求時檢查cookie jar 里面存不存在cookie,不存在就讀取nutch.site.xml里面我們配置的登錄鏈接,然后把cookie存進去,不管你抓取哪個網頁,不管你用沒用到,反正cookie就在了。

參考地址:https://issues.apache.org/jira/browse/NUTCH-827

step2:補丁下載地址

http-client-form-authtication.patch 網盤下載地址:http://pan.baidu.com/s/1sjuek0l

nutch-http-cookies.patch 網盤下載地址:http://pan.baidu.com/s/1pJ3BDO3

step3:補丁使用方法

    拿到補丁文件,感到欣喜萬分,可是怎么用啊,完全不會啊。我把補丁文件研究了一下,發現了規律。除了httpBase在lib-http這個插件里面,我們其他的PRotocol-httpclient里面,按照補丁里面的++就是添加,--就是刪除,根據上下文推出位置,新增代碼或者新增類即可。注意每個版本代碼已經有變化,但是找到自己決定合適的地方,總可以找到的。我用最原始的的辦法,手動去修改了httpBase類和http類,按照補丁新增了幾個類,這一步一定要細心,別copy錯了。

+++ src/plugin/lib-http/src/java/org/apache/nutch/protocol/http/api/HttpBase.java    (working copy)
+++ src/plugin/protocol-httpclient/src/java/org/apache/nutch/protocol/httpclient/Http.java    (working copy)

step4:怎么配置登錄頁面的地址

  在nutch-site.xml里面添加登錄信息即可,注意雖然上面的文章,補丁上都是nutch-default.xml,但是根據nutch xml順序,加在nutch-site.xml即可.

找到登錄頁面表單里的用戶名,密碼等,模擬登錄。

注意:xml存在轉義 不能直接寫& 要用&來代替

 <property> <name>http.cookie.login.page</name>  <value>www.xxx.com/login?id=xxx&amp;pas=xxx</value>  <description>URL of the login page to derive the cookies from. Cookies  will be stored upon initialization and re-initialized upon expiration.  Any URL request attributes will be sent to POSTed to the page.  NOTE: This currently only works for protocol-httpclient.</description></property>

ant 編譯nutch

在nutch-1.6目錄下運行 ant就可以直接進行編譯,但是有一些問題需要注意。

問題一:jsoup.jar不存在

  由于我們修改的文件用引入了這個包,所以我們需要在工程中引入這個包,要修改ivysetting.xml和plugin.xml,具體方法谷歌(add third part dependency to you nutch plugin),我的搜索不了,以后再更新。

問題二:運行到此處沒反應的,需要等待幾分鐘

resolve-default:[ivy:resolve] :: Ivy 2.2.0 - 20100923230623 :: http://ant.apache.org/ivy/ ::[ivy:resolve] :: loading settings :: file = /home/shaozt/softIns/CrawSource/apache-nutch-2.1/ivy/ivysettings.xml

問題三:connection time out

  此問題的原因是http://repo1.maven.org/maven2/不存在,解決方案是尋找能使用的資源庫URL。經過測試http://mirrors.ibiblio.org/maven2/在瀏覽器下可以正常訪問,用此URL替換/ivy目錄下ivysettings.xml中的http://repo1.maven.org/maven2/,可以正常下載所依賴的jar包,編譯成功。

問題四:是否需要代理

  如果你使用的是代理,而問題三改后任然timeout ,需要為ant配置代理,格式如下。網上的什么set感覺沒有用。

export ANT_OPTS="-Dhttp.proxyHost=XXX -Dhttp.proxyPort=XX"http://如果需要用戶名和密碼,需要后面添加export ANT_OPTS="-Dhttp.proxyHost=代理服務器地址 -Dhttp.proxyPort=代理服務器端口 -Dhttp.proxyUserName=用戶名 -Dhttp.proxyPassWord=密碼"

nutch使用注意:二次開發的是protocol-httpclient,在nutch-site.xml 把protocol-http 插件換成protocol-httpclient

最重要的幾點我都已經說明了,我相信會對需要的人有很大的幫助。不過這個插件二次開發還是不太完善,補丁包里面也有很多不用的代碼,但是至少功能實現了。后面還面臨更大的挑戰,主頁可不可以不要全部用js生成,還讓人怎么活??!

(原創)博客園 輕狂書生http://www.49028c.com/xiaoshuai1992/p/nutchlogin.html,轉載請注明出處!


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
中文字幕亚洲一区| 国产精品久久久久久久久久免费| 成人免费在线网址| 欧美最顶级丰满的aⅴ艳星| 91精品视频观看| 情事1991在线| 理论片在线不卡免费观看| 亚洲一区二区精品| 亚洲国产91色在线| 精品一区二区亚洲| 欧美激情三级免费| 国产精品成人免费电影| 中文字幕精品一区二区精品| 亚洲男人的天堂网站| 欧美成人激情视频| 91高清免费在线观看| 欧美寡妇偷汉性猛交| 日韩av在线高清| 欧美成人四级hd版| 国产精品流白浆视频| 中文字幕在线国产精品| 国产不卡视频在线| 91精品国产综合久久久久久蜜臀| 国产精品一区二区三区在线播放| 亚洲精品v天堂中文字幕| 国产欧美日韩精品在线观看| 国产精品精品一区二区三区午夜版| 欧美日韩免费一区| 97香蕉超级碰碰久久免费的优势| 91免费人成网站在线观看18| 91免费福利视频| 日本a级片电影一区二区| 91在线精品视频| 91亚洲国产成人久久精品网站| 深夜成人在线观看| 97视频在线免费观看| 久久久女女女女999久久| 欧美性videos高清精品| 全色精品综合影院| 国产精品久久久久久五月尺| 久久99久久久久久久噜噜| 欧美日韩国产精品专区| 久热精品视频在线观看一区| 国产精品免费在线免费| 视频在线观看99| 国产97在线|日韩| 欧美中文字幕在线视频| 日韩免费看的电影电视剧大全| 欧美激情欧美狂野欧美精品| 国产成人精品一区二区在线| 国产精品直播网红| 久久国产精品影视| 日韩美女视频中文字幕| 欧美日韩中文在线观看| 少妇高潮久久77777| 日韩视频免费看| 久久夜精品va视频免费观看| 国产精品视频一区国模私拍| 中文字幕亚洲一区| 国产欧美精品一区二区| 亚洲精品第一国产综合精品| 成人av在线亚洲| 欧美日韩在线第一页| 97人洗澡人人免费公开视频碰碰碰| 欧美在线一区二区三区四| 欧美大片在线看| 欧美精品国产精品日韩精品| 欧美电影在线观看高清| 91精品久久久久久久久久久久久久| 91高潮在线观看| 亚洲精品久久7777777| 日韩在线观看免费高清完整版| 欧美色图在线视频| 亚洲精品自拍视频| 欧美在线视频在线播放完整版免费观看| 日韩小视频在线观看| 久久成人18免费网站| 亚洲精品视频在线观看视频| 日韩在线视频国产| 亚洲欧美精品一区二区| 国产日产欧美a一级在线| 国产精品入口免费视| 亚洲va男人天堂| 亚洲天堂第二页| 成人国内精品久久久久一区| 亚洲欧洲日产国码av系列天堂| 中文日韩在线观看| 久久精彩免费视频| 精品国产一区二区三区四区在线观看| 亚洲精品久久久久久久久久久久久| 欧美激情区在线播放| 中文字幕亚洲欧美在线| 亚洲自拍偷拍色图| 91av国产在线| 欧美性在线视频| 69影院欧美专区视频| 亚洲成人网在线观看| 欧美激情精品久久久| 66m—66摸成人免费视频| 久久免费成人精品视频| 欧美多人乱p欧美4p久久| 国产精品视频网址| 欧美性高潮床叫视频| 国产va免费精品高清在线观看| 久久久久久久久久久免费精品| 亚洲精品av在线| 欧美美女操人视频| 欧美一级大胆视频| 国产精品嫩草影院久久久| 在线观看久久av| 久久久欧美一区二区| 国产成人精品午夜| 欧美日韩中文字幕在线视频| 日韩在线观看免费高清完整版| 伊人久久久久久久久久久| 91精品久久久久久久久久久久久久| 亚洲女人天堂成人av在线| 亚洲国产精品久久精品怡红院| 亚洲视频在线观看免费| 国产精品久久久久久久久借妻| 中文字幕精品国产| 欧美日韩福利电影| 精品久久香蕉国产线看观看亚洲| 亚洲成人黄色在线| 都市激情亚洲色图| 成人免费观看a| 永久免费看mv网站入口亚洲| 疯狂做受xxxx高潮欧美日本| 国产欧美精品一区二区三区介绍| 国产精品第七影院| 欧美www视频在线观看| 亚洲最新视频在线| 欧美一区三区三区高中清蜜桃| 欧美色欧美亚洲高清在线视频| 色综合天天狠天天透天天伊人| 久久精品国产亚洲一区二区| 亚洲欧美中文日韩在线v日本| 久久99久久亚洲国产| 亚洲国产又黄又爽女人高潮的| 97精品一区二区三区| 久久久91精品国产一区不卡| 久久久亚洲天堂| 日本道色综合久久影院| 欧美日韩第一视频| 国产成人一区三区| 疯狂蹂躏欧美一区二区精品| 午夜精品久久久久久久99黑人| 日韩在线观看精品| 日韩成人中文电影| 91sao在线观看国产| 欧美日韩裸体免费视频| 最近2019免费中文字幕视频三| 欧美成人中文字幕| 国产成人免费av电影| 在线免费观看羞羞视频一区二区| 中文字幕日韩精品有码视频| 亚洲激情在线视频| 中文在线资源观看视频网站免费不卡| 中文字幕精品一区二区精品| 日韩视频免费看| 成人激情免费在线| 日韩免费不卡av| 97精品视频在线播放| 国产精品99一区|