1

我正试图让我的蜘蛛工作。这是我在蜘蛛中的代码:

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

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

示例网址如下所示: http

://www.khmer24.com/ad/honda-click-2012-98/67-258149.html 我想保留“ad”和“67-”

的输出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

所以你的问题是,“为什么我的推荐人没有?

日志输出中的行

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

来自start_urls,而不是链接提取器。默认情况下,发出的请求start_urls不包含引用标头。您可以通过自己发出请求来手动添加标头。

于 2013-02-28T18:01:38.910 回答