Diese Spinne zieht Titel aus den Funny subreddit Seiten. Ich denke, das Problem könnte mit der erlaubten URL sein, da die/funny home page nicht mit dieser übereinstimmt. Wenn ich "/ r/funny /" zur erlaubten Liste hinzufüge, wird es zu wild und kriecht zu viel. Auch nicht sicher, was den ersten Punktes von jeder Seite zu machen, falsch zu sein (kann der letzte Punkt auf der vorherige Seite manchmal sein.Scrapy Spider sammelt nicht die erste Seite von Daten und erste Artikel auf jeder Seite möglicherweise nicht richtig
from scrapy.spiders import CrawlSpider, Rule
from scrapy.linkextractors import LinkExtractor
from scrapy.http.response import Response
class Lesson1Spider(CrawlSpider):
name = 'lesson1'
allowed_domains = ['www.reddit.com']
start_urls = ['http://www.reddit.com/r/funny/']
rules = [
Rule(LinkExtractor(
allow=['/r/funny/\?count=\d*&after=\w*',]),
callback='parse_item',
follow=True),
]
def parse_item (self, response):
print(response.xpath('//p[@class="title"]/a/text()').extract())
ja. ich stimme zu. Die Regel basiert auf der nächsten Schaltfläche am unteren Rand der Seite. Ich gehe davon aus, dass die Startseite nicht gelesen wird (weil sie der Regel nicht folgt. Ich denke, ich brauche eine Ergänzung zu der Regel, die besagt "akzeptiere immer die erste Seite und gehe dann nach der bestehenden Regel. –
Du kann auch eine neue Anfrage für die nächste Seite "ergeben", siehe den Abschnitt "Folgender Link" im [Scrapy Tutorial] (https://doc.scrapy.org/en/latest/intro/tutorial.html). – FiscalTwinkie
(Bitte akzeptieren Sie diese Antwort auch, wenn Sie Ihr Problem gelöst haben) – FiscalTwinkie