1

我正在使用我在网上找到的以下代码递归地抓取多页上的链接。它应该递归地返回所有页面上我需要的所有链接。但我最终最多只能获得 100 个链接。任何建议都会有所帮助。

class MySpider(CrawlSpider):
    name = "craigs"
    allowed_domains = ["craigslist.org"]
    start_urls = ["http://seattle.craigslist.org/search/jjj?is_parttime=1"]   

    rules = (Rule (SgmlLinkExtractor(allow=("index\d00\.html", ),restrict_xpaths=('//a[@class="button next"]',))
    , callback="parse_items", follow= True),
    )

    def parse_items(self, response):
        hxs = HtmlXPathSelector(response)
        titles = hxs.select('//span[@class="pl"]')
        items = []
        for titles in titles:
            item = CraigslistSampleItem()
            item ["title"] = titles.select("a/text()").extract()
            item ["link"] = titles.select("a/@href").extract()           
            items.append(item)     
        return(items)
4

1 回答 1

1

只需消除allow=("index\d00\.html", )让它解析next链接:

rules = (Rule(SgmlLinkExtractor(restrict_xpaths=('//a[@class="button next"]',)),           
              callback="parse_items", follow= True),)
于 2014-06-30T15:40:51.303 回答