1. Spider程序:

  

 1 import scrapy, json
2 from UnsplashImageSpider.items import ImageItem
3
4 class UnsplashImageSpider(scrapy.Spider):
5 # 定义Spider的名称
6 name = 'unsplash_image'
7 allowed_domains = ['unsplash.com']
8 # 定义起始页面
9 start_urls = ['https://unsplash.com/napi/photos?page=1&per_page=12']
10 def __init__ (self):
11 self.page_index = 1
12
13 def parse(self, response):
14 # 解析服务器响应的JSON字符串
15 photo_list = json.loads(response.text) # ①
16 # 遍历每张图片
17 for photo in photo_list:
18 item = ImageItem()
19 item['image_id'] = photo['id']
20 item['download'] = photo['links']['download']
21 yield item
22
23 self.page_index += 1
24 # 获取下一页的链接
25 next_link = 'https://unsplash.com/napi/photos?page='\
26 + str(self.page_index) + '&per_page=12'
27 # 继续获取下一页的图片
28 yield scrapy.Request(next_link, callback=self.parse)

2. 在Pipeline中使用urllib.request包直接下載圖片:

 1 from urllib.request import *
2
3 class UnsplashimagespiderPipeline(object):
4 def process_item(self, item, spider):
5 # 每个item代表一个要下载的图片
6 print('----------' + item['image_id'])
7 real_url = item['download'] + "?force=true"
8 try:
9 pass
10 # 打开URL对应的资源
11 with urlopen(real_url) as result:
12 # 读取图片数据
13 data = result.read()
14 # 打开图片文件
15 with open("images/" + item['image_id'] + '.jpg', 'wb+') as f:
16 # 写入读取的数据
17 f.write(data)
18 except:
19 print('下载图片出现错误' % item['image_id'])
 

Scrapy——將爬取圖片下載到本地的更多相关文章

  1. php圖片中寫入字符串然後生成圖片下載到本地

    <?php /** * 生成卡片得類 * Enter description here ... * @author perry * @time 2014-03-03 10:02:20 */ cl ...

  2. 简单的scrapy实战:爬取腾讯招聘北京地区的相关招聘信息

    简单的scrapy实战:爬取腾讯招聘北京地区的相关招聘信息 简单的scrapy实战:爬取腾讯招聘北京地区的相关招聘信息 系统环境:Fedora22(昨天已安装scrapy环境) 爬取的开始URL:ht ...

  3. 使用scrapy框架爬取自己的博文(2)

    之前写了一篇用scrapy框架爬取自己博文的博客,后来发现对于中文的处理一直有问题- - 显示的时候 [u'python\u4e0b\u722c\u67d0\u4e2a\u7f51\u9875\u76 ...

  4. Python的scrapy之爬取链家网房价信息并保存到本地

    因为有在北京租房的打算,于是上网浏览了一下链家网站的房价,想将他们爬取下来,并保存到本地. 先看链家网的源码..房价信息 都保存在 ul 下的li 里面 ​ 爬虫结构: ​ 其中封装了一个数据库处理模 ...

  5. 爬虫框架Scrapy入门——爬取acg12某页面

    1.安装1.1自行安装python3环境1.2ide使用pycharm1.3安装scrapy框架2.入门案例2.1新建项目工程2.2配置settings文件2.3新建爬虫app新建app将start_ ...

  6. Scrapy+selenium爬取简书全站

    Scrapy+selenium爬取简书全站 环境 Ubuntu 18.04 Python 3.8 Scrapy 2.1 爬取内容 文字标题 作者 作者头像 发布日期 内容 文章连接 文章ID 思路 分 ...

  7. 爬虫07 /scrapy图片爬取、中间件、selenium在scrapy中的应用、CrawlSpider、分布式、增量式

    爬虫07 /scrapy图片爬取.中间件.selenium在scrapy中的应用.CrawlSpider.分布式.增量式 目录 爬虫07 /scrapy图片爬取.中间件.selenium在scrapy ...

  8. 【Scrapy(四)】scrapy 分页爬取以及xapth使用小技巧

    scrapy 分页爬取以及xapth使用小技巧 这里以爬取www.javaquan.com为例: 1.构建出下一页的url: 很显然通过dom树,可以发现下一页所在的a标签   2.使用scrapy的 ...

  9. python 使用selenium模块爬取同一个url下不同页的内容(浏览器模拟人工翻页)

    页面翻页,下一页可能是一个新的url 也有可能是用js进行页面跳转,url不变,解决方法是实现浏览器模拟人工翻页 目标:爬取同一个url下不同页的数据(上述第二种情况) url:http://www. ...

随机推荐

  1. Python将word文档转换成PDF文件

    如题. 代码: ''' #將word文档转换为pdf文件 #用到的库是pywin32 #思路上是调用了windows和office功能 ''' #导入所需库 from win32com.client ...

  2. ArrayList之SubList源码解析

    subList是ArrayList的内部类, public List<E> subList(int fromIndex, int toIndex) { subListRangeCheck( ...

  3. 事务的概念,以及事务在JDBC编程中处理事务的步骤

    事务是作为单个逻辑工作单元执行的一系列操作,一个逻辑工作单元必须有四个属性,称为原子性.一致性.隔离性和持久性 (ACID) 属性,只有这样才能成为一个事务 .JDBC处理事务有如下操作: 1,con ...

  4. 30天自制操作系统-day3

    30天自制操作系统-day3 前2天我们分别使用了直接使用二进制编辑器和简单的汇编指令生成了img文件,今天我们尝试一下使用稍微复杂一点的汇编指令 os.asm文件内容如下: ; hello-os ; ...

  5. 智能佳机械软手智能研究版 QB SOFTHAND Research

    ​   智能佳机械软手智能研究版是一种基于软机器人技术的拟人机器人手,灵活.适应性强,能够与周围环境.物体和人类进行交互,同时限制伤害操作员.破坏要处理的产品和破坏机器人本身的风险. 智能佳机械软手智 ...

  6. #3使用html+css+js制作网页 番外篇 制作接收php

    使用html+css+js制作网页 番外篇 制作接收php 本系列链接 基础 php语法 例子 本系列链接 #1使用html+css+js制作网站教程 准备 #2使用html+css+js制作网站教程 ...

  7. 经典项目管理 OR 敏捷项目管理,我该怎么选?

    CODING 项目协同近期为支持传统项目管理推出了「经典项目管理」.至此,CODING 已全面支持敏捷项目管理以及传统项目管理.那么问题来了,「经典项目管理」和「敏捷项目管理」,我该怎么选呢?本文将从 ...

  8. Appium 介绍及环境安装

    Appium是一个可用于测试iOS. Android操作系统和Windows桌面平台原生应用,移动网页应用和混合应用的自动化测试框架. 原生应用(Native App):用 android.iOS或者 ...

  9. db_install.rsp dbca.rsp netca.rsp 详解【转】

    db_install.rsp详解 #################################################################### ## Copyright(c ...

  10. .netcore 急速接入第三方登录,不看后悔

    新年新气象,趁着新年的喜庆,肝了十来天,终于发了第一版,希望大家喜欢. 如果有不喜欢看文字的童鞋,可以直接看下面的地址体验一下: https://oauthlogin.net/ 前言 此次带来得这个小 ...