1

私はスパイダーを働かせようとしています。これはスパイダーの私のコードです:

start_urls = ["http://www.khmer24.com/"]   

rules = (
Rule(SgmlLinkExtractor(allow=(r'ad/\w+/67-\d+\.html',),
    ), 
    callback='parse_items'),
)

サンプルの URL は次のよう になり ます



scrapy crawl khmer24

Crawled (200) <GET http://www.khmer24.com/> (referer: None)

理由がわかりません。コード全体は次のとおりです。

from scrapy.contrib.spiders import CrawlSpider, Rule
from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor
from scrapy.selector import HtmlXPathSelector


class MySpider(CrawlSpider):
    name = "khmer24"
    allowed_domains = ["khmer24.com"]
    start_urls = ["http://www.khmer24.com/"]   

    rules = (
    Rule(SgmlLinkExtractor(allow=(r'ad/\w+/67-\d+\.html',),
        ), 
        callback='parse_items'),
    )

    def parse_items(self, response):
        hxs = HtmlXPathSelector(response)
        titles = hxs.select("//div[@class='innerbox']/h1/text()")
        return(titles)
4

1 に答える 1

1

あなたの質問は、「なぜリファラーが None なのですか?

ログ出力の行

Crawled (200) <GET http://www.khmer24.com/> (referer: None)

start_urlsリンク エクストラクタではなく、から来ています。から行われたリクエストにはstart_urls、デフォルトではリファラー ヘッダーが含まれていません。リクエストを自分で発行することにより、ヘッダーを手動で追加できます。

于 2013-02-28T18:01:38.910 に答える