我有以下部分工作的代码,
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
,如果我注释掉规则中的start_requests()
方法和行process_request='start_requests',
,它将按预期运行并遵循链接,当然没有js渲染。
我已经阅读了两个相关的问题,CrawlSpider with Splash 在第一个 URL和CrawlSpider with Splash后卡住,并专门更改scrapy.Request()
为方法,但这似乎不起作用。我的代码有什么问题?谢谢,SplashRequest()
start_requests()