Hi Alexei,

I tried a crawl with your scrip fragment and Nutch 1.5.1
and the URLs http://mobile365.ru as seed. It worked,
see annotated log below.

Which version of Nutch do you use?

Check the property db.ignore.external.links (default is false).
If true the link from mobile365.ru to www.mobile365.ru
is skipped.

Look into your crawldb (bin/nutch readdb)

Check your URL filters with
 bin/nutch org.apache.nutch.net.URLFilterChecker

Finally, send the nutch-site.xml and every configuration
file you changed.

Good luck,
Sebastian

% nutch inject crawl/crawldb seed.txt
Injector: starting at 2012-08-07 20:31:00
Injector: crawlDb: crawl/crawldb
Injector: urlDir: seed.txt
Injector: Converting injected urls to crawl db entries.
Injector: Merging injected urls into crawl db.
Injector: finished at 2012-08-07 20:31:15, elapsed: 00:00:15

% nutch generate crawl/crawldb crawl/crawldb/segments -adddays 0
Generator: starting at 2012-08-07 20:31:23
Generator: Selecting best-scoring urls due for fetch.
Generator: filtering: true
Generator: normalizing: true
Generator: jobtracker is 'local', generating exactly one partition.
Generator: Partitioning selected urls for politeness.
Generator: segment: crawl/crawldb/segments/20120807203131
Generator: finished at 2012-08-07 20:31:39, elapsed: 00:00:15

# Note: personally, I would prefer not to place segments (also linkdb)
#       in the crawldb/ folder.

% s1=`ls -d crawl/crawldb/segments/* | tail -1`

% nutch fetch $s1
Fetcher: starting at 2012-08-07 20:32:00
Fetcher: segment: crawl/crawldb/segments/20120807203131
Using queue mode : byHost
Fetcher: threads: 10
Fetcher: time-out divisor: 2
QueueFeeder finished: total 1 records + hit by time limit :0
Using queue mode : byHost
fetching http://mobile365.ru/
Using queue mode : byHost
Using queue mode : byHost
-finishing thread FetcherThread, activeThreads=1
Using queue mode : byHost
-finishing thread FetcherThread, activeThreads=1
Using queue mode : byHost
-finishing thread FetcherThread, activeThreads=1
Using queue mode : byHost
-finishing thread FetcherThread, activeThreads=1
-finishing thread FetcherThread, activeThreads=1
Using queue mode : byHost
-finishing thread FetcherThread, activeThreads=1
Using queue mode : byHost
-finishing thread FetcherThread, activeThreads=1
Using queue mode : byHost
Using queue mode : byHost
Fetcher: throughput threshold: -1
-finishing thread FetcherThread, activeThreads=1
Fetcher: throughput threshold retries: 5
-finishing thread FetcherThread, activeThreads=1
-finishing thread FetcherThread, activeThreads=0
-activeThreads=0, spinWaiting=0, fetchQueues.totalSize=0
-activeThreads=0
Fetcher: finished at 2012-08-07 20:32:08, elapsed: 00:00:07

% nutch parse $s1
ParseSegment: starting at 2012-08-07 20:32:12
ParseSegment: segment: crawl/crawldb/segments/20120807203131
Parsed (10ms):http://mobile365.ru/
ParseSegment: finished at 2012-08-07 20:32:20, elapsed: 00:00:07

% nutch updatedb crawl/crawldb/ $s1
CrawlDb update: starting at 2012-08-07 20:32:24
CrawlDb update: db: crawl/crawldb
CrawlDb update: segments: [crawl/crawldb/segments/20120807203131]
CrawlDb update: additions allowed: true
CrawlDb update: URL normalizing: false
CrawlDb update: URL filtering: false
CrawlDb update: 404 purging: false
CrawlDb update: Merging segment data into db.
CrawlDb update: finished at 2012-08-07 20:32:38, elapsed: 00:00:13

# see whether the outlink is now in crawldb:
% nutch readdb crawl/crawldb/ -stats
CrawlDb statistics start: crawl/crawldb/
Statistics for CrawlDb: crawl/crawldb/
TOTAL urls:     2
retry 0:        2
min score:      1.0
avg score:      1.0
max score:      1.0
status 1 (db_unfetched):        1
status 2 (db_fetched):  1
CrawlDb statistics: done
# => yes: http://mobile365.ru/ is fetched, outlink found

%nutch generate crawl/crawldb crawl/crawldb/segments -adddays 0
Generator: starting at 2012-08-07 20:32:58
Generator: Selecting best-scoring urls due for fetch.
Generator: filtering: true
Generator: normalizing: true
Generator: jobtracker is 'local', generating exactly one partition.
Generator: Partitioning selected urls for politeness.
Generator: segment: crawl/crawldb/segments/20120807203307
Generator: finished at 2012-08-07 20:33:14, elapsed: 00:00:15

% s1=`ls -d crawl/crawldb/segments/* | tail -1`

% nutch fetch $s1
Fetcher: starting at 2012-08-07 20:33:34
Fetcher: segment: crawl/crawldb/segments/20120807203307
Using queue mode : byHost
Fetcher: threads: 10
Fetcher: time-out divisor: 2
QueueFeeder finished: total 1 records + hit by time limit :0
Using queue mode : byHost
fetching http://www.mobile365.ru/test.html
# got it


On 08/07/2012 04:37 PM, Alexei Korolev wrote:
> Hi,
> 
> I made simple example
> 
> Put in seed.txt
> http://mobile365.ru
> 
> It will produce error.
> 20120807160035
> Put in seed.txt
> http://www.mobile365.ru
> 
> and second launch of crawler script will work fine and fetch
> http://www.mobile365.ru/test.html page.
> 
> On Tue, Aug 7, 2012 at 6:23 PM, Mathijs Homminga <
> mathijs.hommi...@kalooga.com> wrote:
> 
>> Hi,
>>
>> I read from your logs:
>> - test.com is injected.
>> - test.com is fetched and parsed successfully.
>> - but when you run a generate again (second launch), no segment is created
>> (because no url is selected) and your script tries to fetch and parse the
>> first segment again. Hence the errors.
>>20120807160035
>> So test.com is fetched successfully. Question remains: why is no url
>> selected in the second generate?
>> Many answers possible. Can you tell us what urls you have in your crawldb
>> after the first cycle? Perhaps no outlinks have been found / added.
>>
>> Mathijs
>>
>>
>>
>>
>> On Aug 7, 2012, at 16:02 , Alexei Korolev <alexei.koro...@gmail.com>
>> wrote:
>>
>>> Hello,
>>>
>>> Yes, test.com and www.test.com exist.
>>> test.com do not redirect on www.test.com, it opens page with ongoing
>> link20120807160035
>>> with www. like www.test.com/page1 www.test.com/page2
>>>
>>> First launch of crawler script
>>>
>>> root@Ubuntu-1110-oneiric-64-minimal:/data/nutch# ./crawl.sh
>>> Injector: starting at 2012-08-07 16:00:30
>>> Injector: crawlDb: crawl/crawldb
>>> Injector: urlDir: seed.txt
>>> Injector: Converting injected urls to crawl db entries.
>>> Injector: Merging injected urls into crawl db.
>>> Injector: finished at 2012-08-07 16:00:32, elapsed: 00:00:02
>>> Generator: starting at 2012-08-07 16:00:33
>>> Generator: Selecting best-scoring urls due for fetc20120807160035h.
>>> Generator: filtering: true
>>> Generator: normalizing: true
>>> Generator: jobtracker is 'local', generating exactly one partition.
>>> Generator: Partitioning selected urls for politeness.
>>> Generator: segment: crawl/crawldb/segments/20120807160035
>>> Generator: finished at 2012-08-07 16:00:36, elapsed: 00:00:03
>>> Fetcher: Your 'http.agent.name' value should be listed first in
>>> 'http.robots.agents' property.
>>> Fetcher: starting at 2012-08-07 16:00:37
>>> Fetcher: segment: crawl/crawldb/segments/20120807160035
>>> Using queue mode : byHost
>>> Fetcher: threads: 10
>>> Fetcher: time-out divisor: 2
>>> QueueFeeder finished: total 1 records + hit by time limit :0
>>> Using queue mode : byHost20120807160035
>>> Using queue mode : byHost
>>> -finishing thread FetcherThread, activeThreads=1
>>> Using queue mode : byHost
>>> fetching http://test.com
>>> -finishing thread FetcherThread, activeThreads=1
>>> Using queue mode : byHost
>>> -finishing thread FetcherThread, activeThreads=1
>>> Using queue mode : byHost
>>> -finishing thread FetcherThread, activeThreads=1
>>> Using queue mode : byHost
>>> -finishing thread FetcherThread, activeThreads=1
>>> Using queue mode : byHost
>>> -finishing thread FetcherThread, activeThreads=1
>>> Using queue mode : byHost
>>> -finishing thread FetcherThread, activeThreads=1
>>> Using queue mode : byHost
>>> -finishing thread FetcherThread, activeThreads=1
>>> Using queue mode : byHost
>>> -finishing thread FetcherThread, activeThreads=1
>>> Fetcher: throughput threshold: -1
>>> Fetcher: throughput threshold retries: 5
>>> -activeThreads=1, spinWaiting=0, fetchQueues.totalSize=0
>>> -activeThreads=1, spinWaiting=0, fetchQueues.totalSize=0
>>> -finishing thread FetcherThread, activeThreads=0
>>> -activeThreads=0, spinWaiting=0, fetchQueues.totalSize=0
>>> -activeThreads=0
>>> Fetcher: finished at 2012-08-07 16:00:41, elapsed: 00:00:04
>>> ParseSegment: starting at 2012-08-07 16:00:41
>>> ParseSegment: segment: crawl/crawldb/segments/20120807160035
>>> Parsing: http://test.com
>>> ParseSegment: finished at 2012-08-07 16:00:44, elapsed: 00:00:02
>>> CrawlDb update: starting at 2012-08-07 16:00:44
>>> CrawlDb update: db: crawl/crawldb
>>> CrawlDb update: segments: [crawl/crawldb/segments/20120807160035]
>>> CrawlDb update: additions allowed: true
>>> CrawlDb update: URL normalizing: false
>>> CrawlDb update: URL filtering: false
>>> CrawlDb update: 404 purging: false
>>> CrawlDb update: Merging segment data into db.
>>> CrawlDb update: finished at 2012-08-07 16:00:45, elapsed: 00:00:01
>>> LinkDb: starting at 2012-08-07 16:00:46
>>> LinkDb: linkdb: crawl/crawldb/linkdb
>>> LinkDb: URL normalize: true
>>> LinkDb: URL filter: true
>>> LinkDb: adding segment:
>>> file:/data/nutch/crawl/crawldb/segments/20120807160035
>>> LinkDb: finished at 2012-08-07 16:00:47, elapsed: 00:00:01
>>>
>>> Second launch of srcipt
>>>
>>> root@Ubuntu-1110-oneiric-64-minimal:/data/nutch# ./crawl.sh
>>> Injector: starting at 2012-08-07 16:01:30
>>> Injector: crawlDb: crawl/crawldb
>>> Injector: urlDir: seed.txt
>>> Injector: Converting injected urls to crawl db entries.
>>> Injector: Merging injected urls into crawl db.
>>> Injector: finished at 2012-08-07 16:01:32, elapsed: 00:00:02
>>> Generator: starting at 2012-08-07 16:01:33
>>> Generator: Selecting best-scoring urls due for fetch.
>>> Generator: filtering: true
>>> Generator: normalizing: true
>>> Generator: jobtracker is 'local', generating exactly one partition.
>>> Generator: 0 records selected for fetching, exiting ...
>>> Fetcher: Your 'http.agent.name' value should be listed first in
>>> 'http.robots.agents' property.
>>> Fetcher: starting at 2012-08-07 16:01:35
>>> Fetcher: segment: crawl/crawldb/segments/20120807160035
>>> Fetcher: java.io.IOException: Segment already fetched!
>>>    at
>>>
>> org.apache.nutch.fetcher.FetcherOutputFormat.checkOutputSpecs(FetcherOutputFormat.java:58)
>>>    at
>>> org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:772)
>>>    at org.apache.hadoop.mapred.JobClient.submitJob(JobClient.java:730)
>>>    at org.apache.hadoop.mapred.JobClient.runJob(JobClient.java:1249)
>>>    at org.apache.nutch.fetcher.Fetcher.fetch(Fetcher.java:1204)
>>>    at org.apache.nutch.fetcher.Fetcher.run(Fetcher.java:1240)
>>>    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)
>>>    at org.apache.nutch.fetcher.Fetcher.main(Fetcher.java:1213)
>>>
>>> ParseSegment: starting at 2012-08-07 16:01:35
>>> ParseSegment: segment: crawl/crawldb/segments/20120807160035
>>> Exception in thread "main" java.io.IOException: Segment already parsed!
>>>    at
>>>
>> org.apache.nutch.parse.ParseOutputFormat.checkOutputSpecs(ParseOutputFormat.java:87)
>>>    at
>>> org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:772)
>>>    at org.apache.hadoop.mapred.JobClient.submitJob(JobClient.java:730)
>>>    at org.apache.hadoop.mapred.JobClient.runJob(JobClient.java:1249)
>>>    at org.apache.nutch.parse.ParseSegment.parse(ParseSegment.java:157)
>>>    at org.apache.nutch.parse.ParseSegment.run(ParseSegment.java:178)
>>>    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)
>>>    at org.apache.nutch.parse.ParseSegment.main(ParseSegment.java:164)
>>> CrawlDb update: starting at 2012-08-07 16:01:36
>>> CrawlDb update: db: crawl/crawldb
>>> CrawlDb update: segments: [crawl/crawldb/segments/20120807160035]
>>> CrawlDb update: additions allowed: true
>>> CrawlDb update: URL normalizing: false
>>> CrawlDb update: URL filtering: false
>>> CrawlDb update: 404 purging: false
>>> CrawlDb update: Merging segment data into db.
>>> CrawlDb update: finished at 2012-08-07 16:01:37, elapsed: 00:00:01
>>> LinkDb: starting at 2012-08-07 16:01:37
>>> LinkDb: linkdb: crawl/crawldb/linkdb
>>> LinkDb: URL normalize: true
>>> LinkDb: URL filter: true
>>> LinkDb: adding segment:
>>> file:/data/nutch/crawl/crawldb/segments/20120807160035
>>> LinkDb: merging with existing linkdb: crawl/crawldb/linkdb
>>> LinkDb: finished at 2012-08-07 16:01:40, elapsed: 00:00:02
>>>
>>>
>>> But when seed.txt have www.test.com instead test.com second launch of
>>> crawler script found next segment for fetching.
>>>
>>> On Sat, Aug 4, 2012 at 7:33 PM, Mathijs Homminga <
>>> mathijs.hommi...@kalooga.com> wrote:
>>>
>>>> What do you mean exactly with "it falls on fetch phase"?
>>>> Do  you get an error?
>>>> Does "test.com" exist?
>>>> Does it perhaps redirect to "www.test.com"?
>>>> ...
>>>>
>>>> Mathijs
>>>>
>>>>
>>>> On Aug 4, 2012, at 17:11 , Alexei Korolev <alexei.koro...@gmail.com>
>>>> wrote:
>>>>
>>>>> yes
>>>>>
>>>>> On Sat, Aug 4, 2012 at 6:11 PM, Lewis John Mcgibbney <
>>>>> lewis.mcgibb...@gmail.com> wrote:
>>>>>
>>>>>> http://   ?
>>>>>>
>>>>>> hth
>>>>>>
>>>>>> On Fri, Aug 3, 2012 at 9:53 AM, Alexei Korolev <
>>>> alexei.koro...@gmail.com>
>>>>>> wrote:
>>>>>>> Hello,
>>>>>>>
>>>>>>> I have small script
>>>>>>>
>>>>>>> $NUTCH_PATH inject crawl/crawldb seed.txt
>>>>>>> $NUTCH_PATH generate crawl/crawldb crawl/crawldb/segments -adddays 0
>>>>>>>
>>>>>>> s1=`ls -d crawl/crawldb/segments/* | tail -1`
>>>>>>> $NUTCH_PATH fetch $s1
>>>>>>> $NUTCH_PATH parse $s1
>>>>>>> $NUTCH_PATH updatedb crawl/crawldb $s1
>>>>>>>
>>>>>>> In seed.txt I have just one site, for example "test.com". When I
>> start
>>>>>>> script it falls on fetch phase.
>>>>>>> If I change test.com on www.test.com it works fine. Seems the
>> reason,
>>>>>> that
>>>>>>> outgoing link on test.com all have www. prefix.
>>>>>>> What I need to change in nutch config for work with test.com?
>>>>>>>
>>>>>>> Thank you in advance. I hope my explanation is clear :)
>>>>>>>
>>>>>>> --
>>>>>>> Alexei A. Korolev
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Lewis
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Alexei A. Korolev
>>>>
>>>>
>>>
>>>
>>> --
>>> Alexei A. Korolev
>>
>>
> 
> 

Reply via email to