使用Python中的废品包进行数据爬行


  1. 我正在尝试使用" scrapy"软件包从网站(IMDB(中获取一些数据。

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

  3. 我想像没有image_url一样修复它,然后忘记图像和爬网数据。

  4. 我该如何修复部分?

def parse(自我,响应(:

//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)

您可以使用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 Item Loader。

最新更新