【问题标题】:Nutch Crawling not working for particular URLNutch Crawling 不适用于特定 URL
【发布时间】:2013-05-27 04:09:49
【问题描述】:

我正在使用 apache nutch 进行爬行。当我抓取页面http://www.google.co.in 时。它正确地抓取页面并产生结果。但是,当我在该 url 中添加一个参数时,它不会为 url http://www.google.co.in/search?q=bill+gates 获取任何结果。

solrUrl is not set, indexing will be skipped...
crawl started in: crawl
rootUrlDir = urls
threads = 10
depth = 3
solrUrl=null
topN = 100
Injector: starting at 2013-05-27 08:01:57
Injector: crawlDb: crawl/crawldb
Injector: urlDir: urls
Injector: Converting injected urls to crawl db entries.
Injector: total number of urls rejected by filters: 0
Injector: total number of urls injected after normalization and filtering: 1
Injector: Merging injected urls into crawl db.
Injector: finished at 2013-05-27 08:02:11, elapsed: 00:00:14
Generator: starting at 2013-05-27 08:02:11
Generator: Selecting best-scoring urls due for fetch.
Generator: filtering: true
Generator: normalizing: true
Generator: topN: 100
Generator: jobtracker is 'local', generating exactly one partition.
Generator: Partitioning selected urls for politeness.
Generator: segment: crawl/segments/20130527080219
Generator: finished at 2013-05-27 08:02:26, elapsed: 00:00:15
Fetcher: Your 'http.agent.name' value should be listed first in 'http.robots.agents' property.
Fetcher: starting at 2013-05-27 08:02:26
Fetcher: segment: crawl/segments/20130527080219
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
Using queue mode : byHost
Using queue mode : byHost
fetching http://www.google.co.in/search?q=bill+gates
Using queue mode : byHost
Using queue mode : byHost
Using queue mode : byHost
Using queue mode : byHost
Using queue mode : byHost
Using queue mode : byHost
Using queue mode : byHost
Fetcher: throughput threshold: -1
Fetcher: throughput threshold retries: 5
-finishing thread FetcherThread, activeThreads=8
-finishing thread FetcherThread, activeThreads=7
-finishing thread FetcherThread, activeThreads=1
-finishing thread FetcherThread, activeThreads=2
-finishing thread FetcherThread, activeThreads=3
-finishing thread FetcherThread, activeThreads=4
-finishing thread FetcherThread, activeThreads=5
-finishing thread FetcherThread, activeThreads=6
-finishing thread FetcherThread, activeThreads=1
-finishing thread FetcherThread, activeThreads=0
-activeThreads=0, spinWaiting=0, fetchQueues.totalSize=0
-activeThreads=0
Fetcher: finished at 2013-05-27 08:02:33, elapsed: 00:00:07
ParseSegment: starting at 2013-05-27 08:02:33
ParseSegment: segment: crawl/segments/20130527080219
ParseSegment: finished at 2013-05-27 08:02:40, elapsed: 00:00:07
CrawlDb update: starting at 2013-05-27 08:02:40
CrawlDb update: db: crawl/crawldb
CrawlDb update: segments: [crawl/segments/20130527080219]
CrawlDb update: additions allowed: true
CrawlDb update: URL normalizing: true
CrawlDb update: URL filtering: true
CrawlDb update: 404 purging: false
CrawlDb update: Merging segment data into db.
CrawlDb update: finished at 2013-05-27 08:02:54, elapsed: 00:00:13
Generator: starting at 2013-05-27 08:02:54
Generator: Selecting best-scoring urls due for fetch.
Generator: filtering: true
Generator: normalizing: true
Generator: topN: 100
Generator: jobtracker is 'local', generating exactly one partition.
Generator: 0 records selected for fetching, exiting ...
Stopping at depth=1 - no more URLs to fetch.
LinkDb: starting at 2013-05-27 08:03:01
LinkDb: linkdb: crawl/linkdb
LinkDb: URL normalize: true
LinkDb: URL filter: true
LinkDb: internal links will be ignored.
LinkDb: adding segment: file:/home/muthu/workspace/webcrawler/crawl/segments/20130527080219
LinkDb: finished at 2013-05-27 08:03:08, elapsed: 00:00:07
crawl finished: crawl

我已经添加了代码

# skip URLs containing certain characters as probable queries, etc.
-.*[?*!@=].*

为什么会这样?如果我添加参数可以获取网址吗?提前感谢您的帮助。

【问题讨论】:

    标签: java web-crawler nutch


    【解决方案1】:

    Nutch 爬虫遵循 robots.txt,如果您看到 robots.txt 位于 http://www.google.co.in/robots.txt,您会发现 /search 被禁止爬取。

    【讨论】:

    • 是否仍然允许搜索?
    • 除非你写一些自定义的东西来做到这一点。但是它会违反谷歌服务条款
    • 但是在这个(stackoverflow.com/questions/11842913/…) 他们告诉通过禁用机器人来爬行
    • 据我所知,不遵守 robots.txt 会给您带来麻烦。绝对不建议用于生产系统
    • 谢谢你。你知道如何设置这个属性 protocol.plugin.check.robots 吗?
    猜你喜欢
    • 2018-09-15
    • 2015-12-30
    • 1970-01-01
    • 1970-01-01
    • 2013-09-27
    • 1970-01-01
    • 1970-01-01
    • 2018-09-12
    • 1970-01-01
    相关资源
    最近更新 更多