2017-08-31 91 views
-1

这是我的pipelines.py(python3 + scrapy1.4)。为什么pipelines.py无法保存从网页抓取的内容?

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.打印(FILE_NAME)不能工作
打印(项目[ '名'])可打印item'name我movie.py的解析功能。
为什么print(item ['name'])不能在pipelines.py中使用scrapy抓取电影执行我的蜘蛛?
2.为何

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

这验证了上面的代码片段工作正常,没有JPG文件保存在/ tmp目录下,为什么同样的结构,管道不能工作?

+1

你验证'process_item'你'MoviePipeline'被甚至被称为?你在'settings.py'中添加了那条管道吗? –

回答

0

VIM电影/ settings.py

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

请使用您问题上的编辑链接添加其他信息。后回答按钮应该只用于问题的完整答案。 - [来自评论](/ review/low-quality-posts/17198570) – mx0