次のページのリンクをたどる再帰ルールのスパイダーを作りました。それは正常に動作します。
スパイダーは、「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
編集: 検索後、クローラーはルールの制限パスの結果に直接従うようです。同じように、startnum=1 で始まる場合、startnum=1 のページ内にある startnum=11 をクロールします
。この問題を解決する方法がわかりません。