pycharm中来调试 scrapy爬虫框架

三.异步传递参数 meta
yield scrapy.Request(url=url_tab2,callback=self.get_detail,meta=img_url)
items[‘picture’] = response.meta.get(‘img_url’,’’)

四.保存图片
1.setting.py中:
ITEM_PIPELINES = {
‘jobbole_scrapy.pipelines.MongoPipeline’: 300,
‘scrapy.pipelines.images.ImagesPipeline’:1, # 指定处理类
}
#指定哪个item字段需要用来下载图片
# 需要采用列表形式保存 items[‘picture’] = [response.meta.get(‘img_url’,’’)],
IMAGES_URLS_FIELD = ‘picture’
#指定图片的保存路径
#os.path.dirname(file) 获取当前文件的名称
#os.path.abspath() 获取文件的绝对路径
image_dir = os.path.abspath(os.path.dirname(file))
IMAGES_STOPE = os.path.join(image_dir,‘images’) # 拼接路径

2.加载pillow库

3.在pipeline.py中增加新的处理类,继承自scrapy.pipelines.images.ImagesPipeline,并改写item_completed方法
class ArticleImagePipeline(ImagesPipeline):
def item_completed(self, results, item, info):
for ok,value in results:
images_path = value[‘path’]
item[‘picture_path’] = images_path
return item

4.对url进行hash
def get_url_hash(url):
if isinstance(url,str): # 判断url是不是unicode格式
url = url.encode(‘utf-8’) # 转换为utf-8格式
m = hashlib.md5()
m.update(url)
return m.hexdigest()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值