2011-01-25 63 views
1

我爲我的應用程序使用了nutch爬蟲,它需要抓取我給urls目錄的一組網址,並僅抓取該網址的內容。 我對內部或外部鏈接的內容不感興趣。 所以我用Nutch的爬蟲,並通過提供深度爲1關於使用nutch對短網址進行抓取

bin/nutch crawl urls -dir crawl -depth 1

Nutch的抓取URL,並讓我給定的URL的內容已經運行抓取命令。

我正在使用readseg實用程序讀取內容。

bin/nutch readseg -dump crawl/segments/* arjun -nocontent -nofetch -nogenerate -noparse -noparsedata

有了這個,我獲取了網頁的內容。

我面臨的問題是,如果我給直接的URL就像

http://isoc.org/wp/worldipv6day/ 
http://openhackindia.eventbrite.com 
http://www.urlesque.com/2010/06/11/last-shot-ye-olde-twitter/ 
http://www.readwriteweb.com/archives/place_your_tweets_with_twitter_locations.php 
http://bangalore.yahoo.com/labs/summerschool.html 
http://riadevcamp.eventbrite.com 
http://www.sleepingtime.org/

那麼我能夠得到網頁的內容。 但是,當我給組URL短網址像

http://is.gd/jOoAa9 
http://is.gd/ubHRAF 
http://is.gd/GiFqj9 
http://is.gd/H5rUhg 
http://is.gd/wvKINL 
http://is.gd/K6jTNl 
http://is.gd/mpa6fr 
http://is.gd/fmobvj 
http://is.gd/s7uZf*** 

我無法獲取的內容。

當我閱讀細分時,它沒有顯示任何內容。請在下面找到從段中讀取的轉儲文件的內容。

 
*Recno:: 0 
URL:: http://is.gd/0yKjO6 
CrawlDatum:: 
Version: 7 
Status: 1 (db_unfetched) 
Fetch time: Tue Jan 25 20:56:07 IST 2011 
Modified time: Thu Jan 01 05:30:00 IST 1970 
Retries since fetch: 0 
Retry interval: 2592000 seconds (30 days) 
Score: 1.0 
Signature: null 
Metadata: _ngt_: 1295969171407 
Content:: 
Version: -1 
url: http://is.gd/0yKjO6 
base: http://is.gd/0yKjO6 
contentType: text/html 
metadata: Date=Tue, 25 Jan 2011 15:26:28 GMT nutch.crawl.score=1.0 Location=http://holykaw.alltop.com/the-twitter-cool-of-a-to-z?tu4=1 _fst_=36 nutch.segment.name=20110125205614 Content-Type=text/html; charset=UTF-8 Connection=close Server=nginx X-Powered-By=PHP/5.2.14 
Content: 
Recno:: 1 
URL:: http://is.gd/1tpKaN 
Content:: 
Version: -1 
url: http://is.gd/1tpKaN 
base: http://is.gd/1tpKaN 
contentType: text/html 
metadata: Date=Tue, 25 Jan 2011 15:26:28 GMT nutch.crawl.score=1.0 Location=http://holykaw.alltop.com/fighting-for-women-who-dont-want-a-voice?tu3=1 _fst_=36 nutch.segment.name=20110125205614 Content-Type=text/html; charset=UTF-8 Connection=close Server=nginx X-Powered-By=PHP/5.2.14 
Content: 
CrawlDatum:: 
Version: 7 
Status: 1 (db_unfetched) 
Fetch time: Tue Jan 25 20:56:07 IST 2011 
Modified time: Thu Jan 01 05:30:00 IST 1970 
Retries since fetch: 0 
Retry interval: 2592000 seconds (30 days) 
Score: 1.0* 

我也嘗試通過將nutch-default.xml中的max.redirects屬性設置爲4,但dint找到任何進度。 請爲我提供解決此問題的解決方案。

感謝和問候, 阿瓊·庫馬爾·雷迪

+0

當縮短使用http鏈接://是。 gd /它不包含您正在爬行的實際頁面,它只是一個前鋒。這就是爲什麼** Nutch **無法獲取它。 – dirbacke 2011-04-01 13:43:37

回答

0

您必須設置2個或更多的深度,因爲第一個獲取收益301(或302)的代碼。重定向將在下一次迭代中進行,因此您必須允許更多深度。

此外,請確保您允許之後,將在您的正則表達式,urlfilter.txt

+0

我已經嘗試了保持深度3,但我無法獲取網頁的內容。 你能告訴我在regex-urlfilter.txt中應該改變什麼嗎? – 2011-01-25 21:53:38

2

所有網址中使用Nutch的1.2嘗試編輯文件的conf/Nutch的-default.xml中
找到 HTTP。 redirect.max和值更改爲至少1,而不是默認0

<property> 
    <name>http.redirect.max</name> 
    <value>2</value><!-- instead of 0 --> 
    <description>The maximum number of redirects the fetcher will follow when 
    trying to fetch a page. If set to negative or 0, fetcher won't immediately 
    follow redirected URLs, instead it will record them for later fetching. 
    </description> 
</property>

好運