Ich beginne zu lernen, wie man Scrapy www.scrapy.org verwendet.Scrapy - Wie extrahiere ich Informationen aus verschachtelten Links
Mein Problem ist, dass ich versuche, Informationen aus einem Link in einem anderen Link zu extrahieren.
Der Fluss ist wie folgt:
Wir geben www.imdb.com, dann im Menü klicken Sie auf Watchlist> IMDbtop250, danach werden wir bis in http://www.imdb.com/chart/top enden, wo wir eine Liste finden von Filmen;
Ich versuche, jeden Film, der einen Link wie folgt hat www.imdb.com/title/tt0111161/?pf_rd_m=A2FGELUUNOQJNL&pf_rd_p=2398042102&pf_rd_r=1EX7BT4EGCE6HVGF919H&pf_rd_s=center-1&pf_rd_t=15506&pf_rd_i=top&ref_=chttp_tt_1
und dann tritt Vollbild-Link aus dem Film, der so aussieht www.imdb.com/title/tt0111161/fullcredits?ref_=tt_cl_sm#cast
, und fängt an, alle Akteure aus dem letzten Link zu extrahieren, so ist das Problem, dass ich wissen, wie die Informationen zu extrahieren, aber mit der Navigation der Links zu kämpfen, das ist der Code, den ich jetzt
# -*- coding: utf-8 -*-
from scrapy import item
from scrapy.spiders import CrawlSpider, Rule
from scrapy.linkextractors import LinkExtractor
class ActorsSpider(CrawlSpider):
name = "actors"
allowed_domains = ["www.imdb.com"]
start_urls = ['http://www.imdb.com/chart/top',
'http://www.imdb.com/title/']
def parse(self, response):
rules = {
Rule(LinkExtractor(allow=r'/title/tt0111161/?pf_rd_m=A2FGELUUNOQJNL&pf_rd_p=2398042102&pf_rd_r=0BP5GZ1CWDNT2NFAWKDN&pf_rd_s=center-1&pf_rd_t=15506&pf_rd_i=top&ref_=chttp_tt_1')),
Rule(LinkExtractor(allow=r'fullcredits?ref_=tt_cl_sm#cast'), callback='parse_actor'),
}
def parse_actor(self, response):
item['title'] = response.css('title').extract()[0]
return item
ich bin mir bewusst, dass diese haben soll, in einer rekursiven Weise getan werden, aber zuerst ich bin tatsächlich versuchen, die Links funktionieren zu lassen, und dass beide Links, die ich eingeben möchte, dieses Merkmal /title/tt0111161/
zumindest für den ersten Link teilen.
Auch ich extrahiere gerade Titel, für jetzt, um zu wissen, wenn ich bin, wo ich sein will.
Vielen Dank im Voraus für jede Hilfe.
Einige Links entfernt, weil ich 10 Ruf noch nicht habe.
Dies ist, was ich zu tun versuchte, jetzt krank nur zu aktualisieren, um auch das Poster in meinem JSON-Objekt hinzuzufügen, können Sie übrigens erklären, wie 'h3 [itemprop ~ = Name] a :: text' funktioniert, Ich verstehe, dass itemProp nicht gleich Name ist? – ricardoNava
Sie können 'scrapy shell (link)' – Surkal
Meine Frage war über die ~ = Operator – ricardoNava