Je commence à apprendre à utiliser Scrapy www.scrapy.org.Scrapy - Comment extraire des informations de liens imbriqués
Mon problème est que j'essaie d'extraire des informations à partir d'un lien dans un autre lien.
Le flux est comme ceci:
Nous entrons www.imdb.com, puis sur le menu cliquez sur Liste> IMDbtop250, après que nous finirons dans http://www.imdb.com/chart/top où nous trouverons une liste de films; J'essaie d'entrer chaque film qui a un lien comme celui-ci 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
puis entre le film complet qui ressemble à ceci www.imdb.com/title/tt0111161/fullcredits?ref_=tt_cl_sm#cast
, et commence à extraire tous les acteurs du dernier lien, donc le problème est que je savoir comment extraire l'info mais aux prises avec la navigation des liens, voici le code que j'ai en ce moment
# -*- 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
Je suis conscient que cela est censé être fait d'une manière récursive mais d'abord je suis en train d'essayer de faire fonctionner les liens, et que les deux liens que j'essaie d'entrer partagent cette caractéristique /title/tt0111161/
au moins pour le premier lien.
Aussi, je suis en train d'extraire le titre, pour l'instant, pour savoir si je suis là où je veux être.
Merci à l'avance pour toute aide.
Suppression de certains liens parce que je n'ai pas 10 réputation ENCORE.
C'est ce que j'essayais de faire, maintenant je mets juste à jour pour ajouter aussi l'affiche dans mon objet JSON, au fait, pouvez-vous expliquer comment fonctionne h3 [itemprop ~ = name] a :: text', Je comprends que itemProp n'est pas égal au nom? – ricardoNava
Vous pouvez utiliser 'shell scrapy (lien)' – Surkal
Ma question concernait l'opérateur ~ = – ricardoNava