Ich habe den folgenden Code ein, der teilweise funktioniert,Scrapy CrawlSpider + Splash: Wie folgt man Links durch Linkextractor?
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
der Code wird nur für start_urls
laufen, aber werden die Links angegeben in restricted_xpaths
nicht folgen, wenn ich start_requests()
Methode kommentieren und die Linie process_request='start_requests',
in den Regeln, Es wird ausgeführt und folgen Links auf bestimmte, natürlich ohne js rendering.
Ich habe die zwei miteinander verbundenen Fragen lesen, CrawlSpider with Splash getting stuck after first URL und CrawlSpider with Splash und speziell scrapy.Request()
-SplashRequest()
im start_requests()
Methode geändert, aber das scheint nicht zu funktionieren. Was ist falsch an meinem Code? Danke,
das scheint nicht zu helfen. erinnere dich an die Zeile 'restrict_xpaths = (" // a [contains (text(), 'Next Page')] ")' funktioniert gut, wenn ich 'start_requests() 'auskommentiere. Wie auch immer ich merke, dass dies ein ungelöstes Problem ist, wie es von vielen Benutzern hier gemeldet wird: https://github.com/scrapy-plugins/scrapyps-splash/issues/92 –