1


我用递归规则制作了一个蜘蛛来跟随下一页的链接。它工作正常。
蜘蛛爬取除“start_urls”中定义的第一页之外的所有页面(999)。有人遇到过问题吗?

示例代码:

class example(CrawlSpider):
    name = "example"
    allowed_domains = ["example.ndd"]
    start_urls = ["http://example.ndd/startnum=1"] #first page  

    rules = (Rule(SgmlLinkExtractor(allow=("nextPage\.htm", ),
                            restrict_xpaths=('//div[@class="paging"]/p[@class="nav"]',)), 
                            callback="parse_items", follow= True),)

    def parse_items(self, response):
        hxs = HtmlXPathSelector(response)
        links= hxs.select('//td[@class="desc"]/h3/a/@href').extract()
        list = []
        for link in links:
            yield link
        return

编辑:搜索后,爬虫seeams直接跟随规则限制路径的结果。同样,如果从 startnum=1 开始,它会爬取 startnum=11,它位于 startnum=1 的页面内。
我不知道如何解决这个问题。

4

2 回答 2

6

你需要使用:def parse_start_url(self, response):

看到这个答案:Scrapy CrawlSpider 不会抓取第一个目标网页

于 2013-04-24T19:01:01.593 回答
0

您的意思是要抓取start_urls并提取它以及其他页面吗?

CrawlSpider不会从中提取项目start_urls。如果需要,请重载parse方法。

于 2013-04-24T16:38:00.083 回答