在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Python/ Scrapy爬取豆瓣電影詳情頁問題

Scrapy爬取豆瓣電影詳情頁問題

題目描述

我用Scrapy框架想要爬取豆瓣中一些電影的上映日期或者導演等信息,發(fā)現(xiàn)不同電影的上映日期或者導演的信息的Xpath路徑是不一樣的,
https://movie.douban.com/subj... 這部電影的上映日期的Xpath是//*[@id="info"]/span[10],
https://movie.douban.com/subj... 這部電影的上映日期的Xpath是//*[@id="info"]/span[9],
兩者的Span路徑的數(shù)字不一樣,造成爬取到的信息有的有,有的沒有。
想請教一下大神,除了Xpath的語法,有什么其他的語法可以解決這個問題呢?
謝謝大神!

相關代碼

import scrapy
import json
from scrapy.http import Request
from scrapy.selector import Selector
from MovieSpider.items import MoviespiderItem

class MovieSpider(scrapy.Spider):

name = "MovieSpider"
allowed_domains = ["movie.douban.com"]
start_urls = ["https://movie.douban.com/j/search_subjects?type=movie&tag=%E5%86%B7%E9%97%A8%E4%BD%B3%E7%89%87&sort=rank&page_limit=20&page_start=0"]

def parse(self, response):
    list = json.loads(response.text)
    urls = list['subjects']
    for url in urls:
        src = url['url']
        yield Request(src, callback=self.parse_detail)

def parse_detail(self, response):
    sel = Selector(response)
    item = MoviespiderItem()
    item['title'] = sel.xpath('//*[@id="content"]/h1/span[1]/text()').extract_first()
    item['score'] = sel.xpath('//*[@id="interest_sectl"]/div[1]/div[2]/strong/text()').extract_first()
    item['year'] = sel.xpath('//*[@id="info"]/span[10]/text()').extract_first()
    item['author'] = sel.xpath('// *[ @ id = "info"]/span[1]/span[2]/a/text()').extract_first()
    yield item

主要問題在于Xpath的路徑,謝謝大神了!

回答
編輯回答
夕顏

上映日期的xpath用這個“//*[@property="v:initialReleaseDate"]”試試

2018年8月17日 14:58