为什么pipelines.py无法保存从网络抓取的内容?

时间:2017-08-31 08:21:07

标签: python web-scraping scrapy

这是我的pipelines.py(python3 + scrapy1.4)。

import urllib.request 
class MoviePipeline(object):
    def process_item(self, item, spider):
        headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0'}
        req = urllib.request.Request(url=item['addr'],headers=headers)
        res = urllib.request.urlopen(req)
        file_name = '/tmp/'+item['name']+'.jpg'
        print(file_name)
        with open(file_name,'wb') as fp:
            fp.write(res.read())

1.print(file_name)无法工作 打印(项目['名称'])可以在我的movie.py的解析功能中打印项目名称。
为什么打印(项目['名称'])无法在pipelines.py中使用scrapy抓取电影来执行我的蜘蛛?
2.为什么在/ tmp目录中没有保存jpg文件

import urllib.request
addr = 'selected_from_crawled_url'
req = urllib.request.Request(url= addr)
res = urllib.request.urlopen(req)
file_name = "/tmp/test.jpg"
with open(file_name,'wb') as fp:
    fp.write(res.read())

验证上面的代码段工作正常,为什么管道中的相同结构无法正常工作?

1 个答案:

答案 0 :(得分:0)

vim movie / settings.py

ITEM_PIPELINES = {
    'movie.pipelines.MpviePipeline': 100,
}