利用 scrapy 框架提取图片以及有用的信息:
python 3.7
scrapy 1.6
豆瓣top250电影
scrapy的管道文件(pipelines):
pipelines: 在一个工程里面,在pipelines.py文件中定义管道,管道实际上就是一个类,而这个类定义了一些方法(属性),用来处理我们传进类(管道)中的数据,在处理完以后,再返回被处理以后的数据。多个管道合用,首先是将一个数据先后传进多个管道中处理,最后输出数据。
用scrapy爬取豆瓣top250电影的影名,导演等信息还有海报(图片,需要下载), 要处理文本和图片,就需要用到两个管道,图片处理管道MypipeimageslinePipeline和文本处理管道MyitemPipeline
- 首先是定义items
import scrapy
class Douban250Item(scrapy.Item):
title = scrapy.Field()
rank = scrapy.Field()
grade = scrapy.Field()
quote = scrapy.Field()
director = scrapy.Field()
star = scrapy.Field()
desc = scrapy.Field()
douban_images = scrapy.Field()
douban_image_urls = scrapy.Field()
image_paths = scrapy.Field()
- pipelines
import codecs
import scrapy
from scrapy.pipelines.images import ImagesPipeline
from scrapy.exceptions import DropItem
class Douban250Pipeline(object):
def __init__(self):
print('starting')
self.file = codecs.open('douban_movie.csv', 'wb', encoding='utf-8'

使用 Scrapy 框架,针对豆瓣Top250电影列表,爬取电影的名称、导演等信息以及电影海报图片。通过自定义的两个管道——MypipeimageslinePipeline处理图片下载,MyitemPipeline处理文本信息。在pipelines.py中定义这些管道,以实现数据的处理和流转。get_media_requests方法返回的成功结果是一个包含布尔值和字典的元组列表,指示图片下载状态。
最低0.47元/天 解锁文章
3万+





