部分的に機能している次のコードがあります。
class ThreadSpider(CrawlSpider):
name = 'thread'
allowed_domains = ['bbs.example.com']
start_urls = ['http://bbs.example.com/diy']
rules = (
Rule(LinkExtractor(
allow=(),
restrict_xpaths=("//a[contains(text(), 'Next Page')]")
),
callback='parse_item',
process_request='start_requests',
follow=True),
)
def start_requests(self):
for url in self.start_urls:
yield SplashRequest(url, self.parse_item, args={'wait': 0.5})
def parse_item(self, response):
# item parser
コードは に対してのみ実行されますが、でstart_urls
指定されたリンクはたどりません。メソッドとルールの行をrestricted_xpaths
コメントアウトすると、意図したとおりに実行され、もちろん js レンダリングなしでリンクがたどられます。start_requests()
process_request='start_requests',
私は2つの関連する質問を読みました.CrawlSpider with Splashが最初のURLの後にスタックし、 CrawlSpider with Splashがメソッド内で具体的に変更さscrapy.Request()
れましたが、うまくいかないようです. コードの何が問題になっていますか? ありがとう、SplashRequest()
start_requests()