首页 > 其他 > 详细

scrapy 爬取图片 最基本操作

时间:2019-09-02 23:20:24      阅读:84      评论:0      收藏:0      [点我收藏+]

使用scrapy里自带的Image功能下载,下面贴代码,解释在代码的注释里。

 

items.py

1 import scrapy
2 
3 class ImageItem(scrapy.Item):
4     #注意这里的item是ImageItem5     image_urls = scrapy.Field()
6     images = scrapy.Field()
7 
8 #image_urls和images是固定的,不能改名字

 

settings.py

 1 USER_AGENT = Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36
 2 #上面只是个访问header,加个降低被拒绝的保险
 3 
 4 ITEM_PIPELINES = {
 5     scrapy.pipelines.images.ImagesPipeline: 1
 6 }
 7 #打开Images的通道
 8 
 9 IMAGES_STORE = F:\\pics
10 #一定要设置这个存储地址,要是真实的硬盘,可以不创建pics文件夹,会自己生成,还生成默认的full文件夹

 

 spider.py(这里是carhome) 

 1 import scrapy
 2 
 3 from car.items import ImageItem
 4 
 5 class CarhomeSpider(scrapy.Spider):
 6     name = carhome
 7     allowed_domains = [sohu.com]
 8     start_urls = [http://www.sohu.com/a/337634404_100032610]
 9     download_delay = 1
10 
11     def parse(self, response):
12         item = ImageItem()
13         srcs = response.css(.article img::attr(src)).extract() #用css方法找到的所有图片地址
14         item[image_urls] = srcs
15         yield item

 

pipelines.py 

 1 from scrapy.pipelines.images import ImagesPipeline
 2 from scrapy.exceptions import DropItem
 3 from scrapy.http import Request
 4 #这里的两个函数get_media_requests和item_completed都是scrapy的内置函数,想重命名的就这这里操作
 5 #可以直接复制这里的代码就可以用了
 6 class MyImagesPipeline(ImagesPipeline) :
 7     def get_media_requests(self, item, info) :
 8         for image_url in item[image_urls] :
 9             yield Request(image_url)
10 
11     def item_completed(self, results, item, info) :
12         image_path = [x[path] for ok, x in results if ok]
13         if not image_path :
14             raise DropItem(Item contains no images)
15         item[image_paths] = image_path
16         return item

 代码就这么多,下面执行一下:

技术分享图片

 

 文件夹结果:

技术分享图片

 

 还不会的快去试试吧!

 

 

 

 

scrapy 爬取图片 最基本操作

原文:https://www.cnblogs.com/passagain/p/11449178.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!