一.常见命令 scrapy全局命令可以在任何地方用,项目命令只能在项目路径下用 全局命令: 项目命令: startproject crawl genspider check settings list runspider edit shell parse fetch bench view version 1.创建项目 scrapy startproject <project_name> [project_dir] 示例: scrapy startproject douban 2.在项目中创建s…
1. Selectors选择器 在抓取网页时,您需要执行的最常见任务是从HTML源提取数据.有几个库可用于实现此目的,例如: BeautifulSoup是Python程序员中非常流行的Web抓取库,它基于HTML代码的结构构造Python对象,并且相当好地处理坏标记,但它有一个缺点:它很慢. lxml是一个XML解析库(也可以解析HTML),它使用基于ElementTree的pythonic API .(lxml不是Python标准库的一部分.) Scrapy带有自己的提取数据机制.它们被称为选…
一.Items 抓取的主要目标是从非结构化源(通常是网页)中提取结构化数据.Scrapy蜘蛛可以像Python一样返回提取的数据.虽然方便和熟悉,但Python缺乏结构:很容易在字段名称中输入拼写错误或返回不一致的数据,尤其是在具有许多蜘蛛的较大项目中. 为了定义通用输出数据格式,Scrapy提供了Item类. Item对象是用于收集数据的简单容器.它们提供类似字典的 API,并具有用于声明其可用字段的方便语法. 1.定义Items ./items.py import scrapy class…
概述 查看scrapy官网的框架图,可以看出中间件处于几大主要组件之间,类似于生产流水线上的加工过程,将原料按照不同需求与功能加工成成品 其中4,5处于下载器与引擎之间的就是下载中间件,而spider与引擎之间的就是spider中间件.目前scrapy主要的中间件就这两个 下载中间件 下载器中间件是介于Scrapy的request/response处理的钩子框架,是用于全局修改Scrapy request和response的一个轻量.底层的系统. 主要作用: 在Scrapy将请求发送到网站之前修…
1.设置优先级 Scrapy中有不同层次的设置,其类型以及优先级如下(从高到低): 1.命令行命令中指定的设置 2.每个spider中的设置 3.scrapy项目中settings.py设置 4.命令行命令的默认设置 5.scrapy全局的默认设置 1.命令行命令中指定的设置 命令行提供的参数是最优先的参数,覆盖任何其他选项 scrapy crawl myspider -s LOG_FILE=scrapy.log 2.每个spider中的设置 spider可以定义自己的设置,这些设置优先并覆盖项…
Item Pipeline Item Pipeline调用发生在Spider产生Item之后.当Spider解析完Response之后,Item就会传递到Item Pipeline,被定义的Item Pipeline组件会顺次调用,完成一连串的处理过程,比如数据清洗.存储等. Item Pipeline的主要用途是: 清理HTML数据. 验证爬取数据,检查爬取字段. 查重并丢弃重复内容. 将爬取结果保存到数据库. Pipeline类 可以自定义管道类,但每个管道类必须实现以下方法: proces…
系列文章列表: scrapy爬虫学习系列一:scrapy爬虫环境的准备:      http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_python_007_scrapy01.html scrapy爬虫学习系列二:scrapy简单爬虫样例学习: http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_python_007_scrapy02.html scrapy爬虫学习系列三:scrapy部署到scrapyh…
scrapy基本使用(二) 参考链接: http://scrapy-chs.readthedocs.io/zh_CN/0.24/intro/tutorial.html#id5 scrapy基本使用(一) http://www.cnblogs.com/zhaijiahui/p/6973858.html 了解一些基础,接下来我们该从源码里,扒出你想要的东西了. 这里就要用到一个叫选择器(Selectors)的东西了. 首先思考几个问题: 1)选择器的作用是什么? 从网页源码中提取出想要的数据.我理解…
js进阶 10-8 伪类选择器有哪几类(自己不用,永远不是自己的) 一.总结 一句话总结:自己不用,永远不是自己的. 0.学而不用,却是为何? 自己不用,永远不是自己的,有需求的时候要想到它,然后操作和练习 1.伪类选择器有哪几类? 6类,简单伪类选择器元素,子元素伪类选择器,可见性伪类选择器,内容伪类选择器,表单伪类选择器,表单属性伪类选择器 2.伪类选择器有多强大? 你想到的,没有它做不到的 3.:first(简单伪类选择器)和:first-child(子元素伪类选择器)的区别是什么? 和:…
本篇将谈一些scrapy的进阶内容,帮助大家能更熟悉这个框架. 1. 站点选取 现在的大网站基本除了pc端都会有移动端,所以需要先确定爬哪个. 比如爬新浪微博,有以下几个选择: www.weibo.com,主站 www.weibo.cn,简化版 m.weibo.cn,移动版 上面三个中,主站的微博数据是动态加载的,意味着光看源码是看不到数据的,想爬的话要么搞清楚其api访问情况,要么模拟js,那样的话花的力气可能就有点多了.weibo.cn是一个简化版,数据能直接从网页源代码中解析出来,但使用正…