2017-04-25 18 views
0
  1. 私は、「scrapy」パッケージを使用してウェブサイト(IMDB)からの画像でデータを取得しようとしています。Pythonのscrapyパッケージを使用したデータクロール

  2. divクラスにimage_URLがある場合は、映画ポスターでデータをクロールできます。しかし、そうでなければ、私のコードは正しく動作しません。それは、画像に関連付けられたデータをスキップしました。

  3. image_URLのように修正して、画像を忘れてデータをクロールするだけです。

  4. 一部を除いてどのように修正できますか?

デフ解析(自己、応答):

//some other lines 

try: 
     poster_image_url = 
     response.xpath('//div[@class="poster"]/a/img/@src').extract()[0] 
     poster_image_url = [ poster_image_url.split("_V1_")[0] + "_V1_.jpg" ] 

except: 
     poster_image_url = None 
     item['image_urls'] = poster_image_url 

これはパイプラインコード↓↓↓↓

クラスImdbPipeline(オブジェクト):

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) 

答えて

0

あなたが使用することができますif check with チェック:

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' 

また、ItemLoader'sという治療法を使用することもできます。

関連する問題