2013-04-24 51 views
1


我用遞歸規則製作了一個蜘蛛來跟隨下一頁的鏈接。它工作正常。
蜘蛛抓取除「start_urls」中定義的第一頁以外的所有頁面(999)。 有人曾經有過這個問題嗎?Scrapy在規則的第一頁上沒有抓取後續頁面

一個示例代碼:

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的頁面內部。
我不知道如何解決此問題。

+1

你可能將不得不張貼真正的片段和網址 – 2013-04-24 07:58:25

回答

0

你的意思是說,你想抓取start_urls並提取它以及其他頁面?

CrawlSpider不會從start_urls中提取物品。如果你想,超載解析方法。