我用递归规则做了一个蜘蛛,按照下一页的链接.它工作正常.
蜘蛛抓取所有页面(999),但"start_urls"中定义的第一页除外.有人遇到过这个问题吗?
示例代码:
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
Run Code Online (Sandbox Code Playgroud)
编辑:搜索后,爬虫看到直接跟随规则的限制路径的结果.同样如果从startnum = 1开始,它抓取startnum = 11,这是在startnum = 1的页面内..
我不知道如何解决这个问题.