使用python中的scrapy包进行数据爬网

时间:2017-04-25 08:58:59

标签: python python-2.7 scrapy scrapy-spider scrapy-pipeline

  1. 我试图通过网站(IMDB)使用“scrapy'”来获取一些数据。包。

  2. 如果div类中有image_URL,那么我可以使用电影海报抓取数据。但是,如果没有,我的代码无法正常工作。它跳过了一些与图像相关的数据。

  3. 我想像没有image_URL一样修复它,然后忘记图像并只抓取数据。

  4. 除了部分之外我该如何解决?

  5. def解析(自我,回应):

    def process_item(self, item, spider):
        return item
    
    def get_media_requests(self, item, info):
        for image_url in item['image_urls']:
            yield scrapy.Request(image_url)
    

    这是管道代码↓↓↓↓

    class ImdbPipeline(object):

    JSONArray

1 个答案:

答案 0 :(得分:0)

如果选中,您可以使用extract_first()

poster_image_url = response.xpath('//div[@class="poster"]/a/img/@src').extract_first()
if poster_image_url:
    item['image_urls'] = poster_image_url.split('_V1')[0] + '_V1_.jgp'

或者,您可以使用scrapy ItemLoader's