一 scrapy 的安装
下载地址:http://blog.csdn.net/liuweiyuxiang/article/details/68929999

1.简单安装方法:
终端输入命令 pip install scrapy 下载scrapy

在安装过程中会出现错误,这时我们就要安装whl格式的包
首先下载scrapy的whl包

下载地址:http://www.lfd.uci.edu/~gohlke/pythonlibs/

在网页中搜索scrapy找到

Scrapy‑1.3.3‑py2.py3‑none‑any.whl
2.安装whl格式包需要安装wheel库
pip install wheel 就可以安装了。
3.scrapy依赖twiste,同样使用whl格式的包进行安装

还是进入http://www.lfd.uci.edu/~gohlke/pythonlibs/,在网页中搜索twisted找到其对应的whl包并下载

Twisted‑17.1.0‑cp36‑cp36m‑win_amd64.whl
根据你的Python的版本选择合适的包,名称中间的cp36是python3.6的意思,amd64是python的位数
下载完成后使用cmd打开windows的命令行窗口,进入whl包所在的文件夹执行如下命令
在 命令行输入:pip install Twisted-17.1.0-cp36-cp36m-win_amd64.whl

Scrapy-1.3.3-py2.py3-none-any.whl包使用同样的方式安装,只是应该等到其所有依赖的包安装完成后才能进行安装,现在还不能安装

4、scrapy依赖lxml包,需要先安装lxml包,lxml包依赖libxml2,libxml2-devel,所以安装lxmllibxml2, libxml2-devel。幸运的是之前我之前已经安装过lxml

5、所有准备工作做完,中医可以安装scrapy包了,进入Scrapy-1.3.3-py2.py3-none-any.whl所在的目录
pip install Scrapy-1.3.3-py2.py3-none-any.whl
6.安装成功之后需要测试一下是否安装成功了。
命令行输入scrapy -h

这就是安装成功了
二 scrapy的使用
1.新建项目 scrapy startproject
在爬去之前必须新建一个scrapy项目,进入自定义的项目目录中,运行以下列命令:

scrapy startproject xiaohua_Spider

xiaohua_Spider为新建的项目名,在根目录下打开文件,就会生成以下文件

这个是爬取校花图片的一个项目
2.pycharm中打开文件,会自动生成一些脚本
在items中引入代码

在spider下面新建一个xiaohua.py文件,会默认生成以下代码

import scrapyclass XiaohuaSpider(scrapy.Spider):name = 'xiaohua'allowed_domains = ['xiaohuar.com']start_urls = ['http://www.xiaohuar.com/hua']def parse(self, response):pass

2.下面就是要爬取校花图片了
在 setting中修改一些数据。
把 True 改为 False

这里也需要修改
修改完后,在pipelines.py写入以下代码

import os
import requestsclass XiaohuaSpiderPipeline(object):def process_item(self, item, spider):# 一个大型项目中可能会有多个spider和多个pipeline,判断一下确保item进入对应的pipeline中。if spider.name == 'xiaohua':print(item['folder_name'],item['img_name'],item['img_url'])# 创建文件夹base_dir = os.path.join(os.path.dirname(__file__) + 'IMG')  # 项目根目录 D://xiaohua.spider/IMGimg_dir = os.path.join(base_dir,item['folder_name'])  # D://xiaohua.spider/IMG/xxx校花if not os.path.exists(img_dir):os.makedirs(img_dir)img_path = os.path.join(img_dir,item['img_name'])# TODO 先用同步请求方式。scrapy自带异步方式作为作业。#  请求和保存图片img_url = item['img_url']resp = requests.get(img_url)if resp.status_code == 200:img_bytes = resp.contentelse:print('{}下载失败'.format(img_url))# 保存图片with open(img_path, mode='wb') as f:f.write(img_bytes)print('{}保存成功'.format(img_path))return item

写代码的同时,需要登录http://www.xiaohuar.com/hua校花网 获取xpath 以及登录百度首页的’User-Agent’获取。
下面是xiaohua.py里的代码,xpath , 'User-Agent’ 添加到代码当中。

# -*- coding: utf-8 -*-
import scrapy
from scrapy.selector import Selector
from scrapy.http import Request
from xiaohua_spider.items import XiaohuaSpiderItem
class XiaohuaSpider(scrapy.Spider):name = 'xiaohua'allowed_domains = ['xiaohuar.com']start_urls = ['http://www.xiaohuar.com/hua']# 自定义头部 。可以在下面代码中载入设置或写在setting.py中custom_settings = {'DEFAULT_REQUEST_HEADERS':{'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8','Accept-Language':'zh-CN,zh;q=0.9','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3608.4 Safari/537.36',}}# 存放待爬取的url,scrapy会自动去重和重试失败链接,我们只需要考虑住url集合中添加未爬取的url。url_set = set()def parse(self, response):"""请求首页图集列表之后得到列表页,解析获得图集详情页的地址。"""# 首先重写parse,否则父类会报NOtImplement异常# response.xpath()。如果安装过lxml,scrapy默认用lxml.etree.etree.HTML(resp.content)a_list = Selector(response).xpath('//div[@class="img"]/a')for a in a_list:detail_url= a.xpath('.//@href').extract_first()if detail_url in self.url_set:# 已爬取过passelse:# 添加到待爬取连接池self.url_set.add(detail_url)# 发现 画廊页urlgallery_url =detail_url.replace('/p','/s')# yield相当于同步函数里的返回值,callback相当于方法嵌套调用,只不过这两个关键字表现异步处理过程,yield生成请求对象(还没有发送请求)到队列中,框架从队列中取一个请求对象去请求,得到响应后再交给回调函数处理。yield Request(url=gallery_url,callback=self.img_parse)def img_parse(self,response):"""请求画廊页后的html结果,生成item"""src_list = Selector(response).xpath('//div[@class ="inner"]/a/img/@src').extract() # [http]folder_name = Selector(response).xpath('//h1/text()').extract_first()for src in src_list:print('图片资源',src)       # self.log('图片资源',scr)img_url = src       # 由于网站开发技术历史原因,有路由形式访问的 '/d/file/20180116/smalleef8a4887c7b40d646061a4211ccd7e81516071519.jpg'}  或# 也有 http:///d/file/20180116/small69df9717ed58b035281c92a1f608b58d1516071519.jpg?if img_url.startswith('https'):passelse:# 路由形式的,协议http,没有解析xiaohuar.comimg_url = 'http://www.xiaohuar.com' + img_urlimg_name = src.split('/')[-1]# test# item = XiaohuaSpiderItem(folder_name=folder_name,img_name = img_name,img_url=img_url)item = XiaohuaSpiderItem()item['folder_name'] = folder_nameitem['img_name'] = img_nameitem['img_url'] = img_urlyield item

这是爬取了一页的内容
另外还需在xiaohua_spider建一个main.py文件
在main.py写入代码 作为入口

# 程序入口
from scrapy import cmdlinecmdline.execute(['scrapy','crawl','xiaohua'])

这些完成之后 新建一个文件夹,来存储爬取的图片
运行main.py,就开始爬取图片了,

结束之后,打开存储图片的文件夹,就能看到图片了

scrapy的安装与使用相关推荐

  1. Python:Scrapy的安装和入门案例

    Scrapy的安装介绍 Scrapy框架官方网址:http://doc.scrapy.org/en/latest Scrapy中文维护站点:http://scrapy-chs.readthedocs. ...

  2. python如何安装scrapy_Python爬虫之Scrapy的安装

    一.Scrapy的介绍 Scrapy是用Python开发的一个快速,高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据.Scrapy用途广泛,可以用于数据挖掘.监测和自动化 ...

  3. 【Python】Scrapy的安装与使用

    scrapy的安装 不得姐网站 直接用命令 pip install scrapy 网络可能较慢,等等就好 另外windows环境下你还需要安装win32 我之前就是因为没有安装这个库,白忙活了一天,一 ...

  4. Scrapy的安装介绍

    Scrapy的安装介绍 Scrapy框架官方网址:http://doc.scrapy.org/en/latest Scrapy中文维护站点:http://scrapy-chs.readthedocs. ...

  5. PyCharm中Scrapy的安装

    一丧:你以为你没女朋友是因为你胖?你错了,是因为你的穷和丑 今日头疼,为什么?因为小太爷我倔强的想在Windows环境下安装Scrapy框架. 不过安装方式因电脑而异吧,我就说我尝试的几种好了. 第一 ...

  6. python中Scrapy的安装详细过程

    目录 安装python 安装pywin32 安装setuptools 安装twisted 安装zopeinterface 安装pyopenssl 安装twisted 安装lxml 安装w3lib 安装 ...

  7. linux安装python库报错pywin32_Python3爬虫利器:Scrapy的安装

    Scrapy是一个十分强大的爬虫框架,依赖的库比较多,至少需要依赖的库有Twisted 14.0.lxml 3.4和pyOpenSSL 0.14.在不同的平台环境下,它所依赖的库也各不相同,所以在安装 ...

  8. Python 爬虫6——Scrapy的安装和使用

    前面我们简述了使用Python自带的urllib和urllib2库完成的一下爬取网页数据的操作,但其实能完成的功能都很简单,假如要进行复制的数据匹配和高效的操作,可以引入第三方的框架,例如Scrapy ...

  9. No module named scrapy 成功安装scrapy,却无法import的解决方法

    No module named scrapy 成功安装scrapy,却无法import的解决方法 参考文章: (1)No module named scrapy 成功安装scrapy,却无法impor ...

  10. python爬虫 - scrapy的安装和使用

    http://blog.csdn.net/pipisorry/article/details/45190851 Crawler Framework爬虫框架scrapy简介 Scrapy是Python开 ...

最新文章

  1. 金融数据分析(二)-------基本资本,金融衍生品,资本收益率
  2. Scalable, Distributed Systems Using Akka, Spring Boot, DDD, and Java--转
  3. 计算机基本水平测试内容,浙江师范大学计算机基础水平测试大纲(2018级新生使用)...
  4. 电脑卡在正在启动windows界面_让 Linux 启动更快
  5. IPC--进程间通信三(共享内存)
  6. C语言-05内存剖析
  7. 阿里巴巴北京总部鸟瞰图曝光:今天又是想去阿里上班的一天!
  8. as3数据类型检查写法(is/as/typeof/in/instanceof)用法介绍
  9. AjaxControlToolkit的TabContainer控件下用html上传控件显示有问题
  10. jni4net调用net库
  11. 使用fileupload实现文件上传
  12. 吾之工作要求:死板,教条,僵化
  13. windows 游戏编程大师技巧(第二版)学习之路-1
  14. 飞鹅打印机远程打印订单
  15. Unity3D在C盘的缓存文件
  16. python打气球小游戏(一)
  17. Word给公式插入编号和引用
  18. 蛮力法 第5关:白帽子红帽子问题
  19. WPS的Excel做一个下拉选择功能
  20. 萘酞菁(VONcs),齐岳生物供应各种酞菁化合物材料

热门文章

  1. 2020软考 信息安全工程师(第二版)学习总结【九】
  2. MySQL 实现 Split 方法
  3. 云数据库 MySQL使用规范 数据库开发人员一定要看!
  4. C++笔试试题讲解(~~~可能是全站唯独一份有解析的~~~)
  5. 农民工看完都学会了!教你一种更清晰的Android架构!附赠课程+题库
  6. javascript面向对象(三):class语法详解
  7. 张一鸣带领5万人,做出多款头部产品的秘密是什么?
  8. webview加载的页面和浏览器渲染的页面不一致_QQ音乐Android客户端Web页面通用性能优化实践...
  9. Ubuntu18.04安装opencv4.5.1+contrib 支持cuda加速(附带编译好的opencv4.5.1及缺失文件)
  10. 读书笔记-思维的精进