利用 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='