Verwenden von Crawl Spider von Scrapy, Artikellistenseite-> Einzelartikelübersichtsseite-> Einzelartikeldetailseite und crawlen Sie die Site, auf der Sie dem Link folgen können. Angenommen, Sie möchten die Informationen auf der Detailseite kratzen und speichern.
Die Entsprechung zwischen der Seite und der URL sieht wie folgt aus.
Seite | URL |
---|---|
Artikelliste | example.com/list |
Artikelübersicht | example.com/item/(ID)/ |
Artikeldetails | example.com/item/(ID)/details |
Wenn Sie bei einer Site mit einer solchen Struktur am Ende des Links zu der aus der Listenseite extrahierten Zusammenfassungsseite / details hinzufügen und damit die Detailseite direkt anfordern können, können Sie zur Site der anderen Partei gehen. Die Anzahl der Anfragen wurde halbiert und die Zeit für die Ausführung dieses Programms wurde ebenfalls reduziert, also zwei Fliegen mit einer Klappe! Das Folgende ist also ein Implementierungsbeispiel.
Beschreiben Sie im Argument * process_value * von LinkExtractor den Prozess der Verarbeitung der URL in einem Lambda-Ausdruck.
example.py
class ExampleSpider(CrawlSpider):
name = 'example'
allowed_domains = ['example.com']
start_urls = ['http://example.com/list'] #Artikellistenseite
rules = [
Rule(LinkExtractor(
#/item/Extrahieren Sie URLs mit
allow=r'.*/item/.*',
#Zur extrahierten URL'details/'Hinzufügen
process_value= lambda x:x + 'details/'
),callback='parse_details'),
]
#
def parse_details(self, response):
#(Kürzung)
das ist alles!