Infi-chu:

http://www.cnblogs.com/Infi-chu/

一、pyspider介绍
1.基本功能
提供WebUI可视化功能,方便编写和调试爬虫
提供爬取进度监控、爬取结果查看、爬虫项目管理
支持多种数据库,MySQL、MongoDB、Redis、SQLite、PostgreSQL等
支持多种消息队列,RabbitMQ、Beanstalk、Redis等
提供优先级控制、失败重试、定时抓取等
对接了PhantomJS,可实现对JavaScript页面的抓取
支持单机、分布式、Docker部署

2.pyspider 与 scrapy 对比
pyspider提供WebUI,scrapy原生不具备此功能
pyspider调试方便
pyspider支持PhantomJS、scrapy支持scrapy-Splash组件
pyspider内置pyquery作为选择器,scrapy对接了XPath、CSS选择器和正则表达式
pyspider扩展程度低

3.框架设计
三大模块:调度器(Scheduler)、抓取器(Fetcher)、处理器(Processer)

4.具体流程
1.每个pyspider项目都对用一个Python脚本,该脚本定义了一个Handler类,使用on_start()方法,开始项目,然后交由scheduler进行调度处理
2.Scheduler将抓取任务传给Fetcher,Fetcher响应完成后,将响应传给Processer
3.Processer处理并提取新的URL再通过消息队列的方式传给Scheduler,如果生成了新的提取结果,则发往结果队列等待Result Worker处理
4.循环上述过程,直到抓取结束,结束时会调用on_finished()

5.例子
https://github.com/Infi-chu/quna

二、pyspider详解
1.启动:
pyspider all
2.crawl()方法
url:爬取的URL,可以定义为单个URL字符串或URL列表
callback:回调函数,指定了该URL对应的响应内容应该由哪个方法来解析
age:任务的有效时间
priority:优先级,默认为0,越大越优先
exetime:可以设置定时任务,其值是时间戳,默认是0,代表立即执行
retries:重试次数,默认是3
itag:设置判定网页是否发生变化的节点值
auto_recrawl:开启后,爬取任务在过期后重新执行
method:HTTP请求方式
params:定义GET请求参数
data:定义POST请求参数
files:上传的文件,需指定文件名
user_agent:User-Agent
headers:Request Headers
cookies:Cookies,字典格式
connect_timeout:初始化连接时最长的等待时间,默认是20秒
timeout:抓取网页的最长等待时间,默认是120秒
allow_redirects:确定是否自动处理重定向,默认是True
validate_cert:是否验证证书,默认是True
proxy:代理
fetch_type:开启PhantomJS渲染
js_script:页面加载完毕后执行的JavaScript脚本
js_run_at:脚本运行位置,默认在节点结尾
js_viewport_width/js_viewport_height:JavaScript渲染页面的窗口大小
load_images:确定是否加载图片,默认是False
save:在不同的方法之间传递参数
cancel:取消任务
force_update:强制更新状态
3.任务区分:
判断是否为同一任务,将比较URL的MD5值是否一样
4.全局配置:
在crawl_config中指定全局配置
5.定时爬取
通过every属性来设置时间间隔
6.项目状态:
TODO 刚创建还未执行
STOP 停止
CHECKING 运行的项目被修改后
DEBUG/RUNNNING 运行
PAUSE 多次出错,挂起或暂停
7.删除项目
将状态设置为STOP,分组名称修改为delete,24小时后自动删除

Python3爬虫(十六) pyspider框架的更多相关文章

  1. Python 爬虫十六式 - 第二式:urllib 与 urllib3

    Python请求标准库 urllib 与 urllib3 学习一时爽,一直学习一直爽!   大家好,我是 Connor,一个从无到有的技术小白.上一次我们说到了什么是HTTP协议,那么这一次我们就要动 ...

  2. Python 爬虫十六式 - 第六式:JQuery的假兄弟-pyquery

    PyQuery:一个类似jquery的python库 学习一时爽,一直学习一直爽   Hello,大家好,我是 Connor,一个从无到有的技术小白.上一次我们说到了 BeautifulSoup 美味 ...

  3. Python 爬虫十六式 - 第七式:正则的艺术

    RE:用匹配来演绎编程的艺术 学习一时爽,一直学习一直爽   Hello,大家好,我是 Connor,一个从无到有的技术小白.上一次我们说到了 pyquery 今天我们将迎来我们数据匹配部分的最后一位 ...

  4. Python 爬虫十六式 - 第五式:BeautifulSoup-美味的汤

    BeautifulSoup 美味的汤 学习一时爽,一直学习一直爽!    Hello,大家好,我是Connor,一个从无到有的技术小白.上一次我们说到了 Xpath 的使用方法.Xpath 我觉得还是 ...

  5. Python爬虫十六式 - 第四式: 使用Xpath提取网页内容

    Xpath:简单易用的网页内容提取工具 学习一时爽,一直学习一直爽 !   Hello,大家好,我是Connor,一个从无到有的技术小白.上一次我们说到了 requests 的使用方法.到上节课为止, ...

  6. Python爬虫十六式 - 第三式:Requests的用法

    Requests: 让 HTTP 服务人类 学习一时爽,一直学习一直爽   Hello,大家好,我是Connor,一个从无到有的技术小白.今天我们继续来说我们的 Python 爬虫,上一次我们说到了 ...

  7. Python 爬虫十六式 - 第一式:HTTP协议

    HTTP:伟大而又无闻的协议 学习一时爽,一直学习一直爽!   Hello,大家好啊,我是Connor,一个从无到有的技术小白.有的人一说什么是HTTP协议就犯愁,写东西的时候也没想过什么是HTTP协 ...

  8. 爬虫(十六):Scrapy框架(三) Spider Middleware、Item Pipeline

    1. Spider Middleware Spider Middleware是介入到Scrapy的Spider处理机制的钩子框架. 当Downloader生成Response之后,Response会被 ...

  9. python爬虫入门(六) Scrapy框架之原理介绍

    Scrapy框架 Scrapy简介 Scrapy是用纯Python实现一个为了爬取网站数据.提取结构性数据而编写的应用框架,用途非常广泛. 框架的力量,用户只需要定制开发几个模块就可以轻松的实现一个爬 ...

  10. selenium-webdriver(python) (十六) --unittest 框架

    学习unittest 很好的一个切入点就是从selenium IDE 录制导出脚本.相信不少新手学习selenium 也是从IED 开始的. IDE学习参考: 菜鸟学自动化测试(一)----selen ...

随机推荐

  1. Oracle基本命令(一)

    1.create user username identified by password;//建用户名和密码oracle ,oracle 2.grant connect,resource,dba t ...

  2. phpstorm2017使用快捷键

    切换到的是NetBeans的皮肤: 1.在行添加一个书签, ctrl+鼠标左键 2.查找添加的书签, ctrl+shift+M 3.关闭项目 选择file->close project

  3. Struts2学习-自动

    和ssh框架的基本一致. <?xml version="1.0" encoding="UTF-8"?> <beans xmlns=" ...

  4. ubuntu环境安装谷歌驱动命令

    1.sudo apt-get install chromium-chromedriver. 2.直接下载:http://chromedriver.storage.googleapis.com/inde ...

  5. 牛客网多校训练第一场 J - Different Integers(树状数组 + 问题转换)

    链接: https://www.nowcoder.com/acm/contest/139/J 题意: 给出n个整数的序列a(1≤ai≤n)和q个询问(1≤n,q≤1e5),每个询问包含两个整数L和R( ...

  6. 15、SpringBoot-CRUD错误处理机制(2)

    二.如何定制错误响应 1).如何定义错误处理页面 1.1.有模板引擎的情况下:error/状态码;         [将错误页面命名为 错误状态码.html 放在模板引擎文件夹里面的error文件夹下 ...

  7. CToolBarCtrl基本内容控件

    基本内容CToolBarCtrl CObject └CCmdTarget └CWnd └CToolBarCtrl CToolBarCtrl类提供了Windows工具条通用控件的性能.这个控件(也就是C ...

  8. Jmeter--thrift接口压测

    1. 安装thrift 2. 新建maven工程,代码结构如下 3. pom设置,按配置存放thrift文件和打包描述文件(具体代码见附件,根据需要改变配置信息) 4. thrift需要手动添加nam ...

  9. 【Linux学习笔记】Linux-CentOS下安装Redis

    虚机装了个Linux,尝试安装了一下Redis这款NoSQL数据库玩玩,作为Linux小白,我安装的是有可视化桌面的CentOS,所以不是纯命令行操作,怎么方便怎么来嘛~ 1.官网下载Redis到指定 ...

  10. ASP.NET Core MVC如何上传文件及处理大文件上传

    用文件模型绑定接口:IFormFile (小文件上传) 当你使用IFormFile接口来上传文件的时候,一定要注意,IFormFile会将一个Http请求中的所有文件都读取到服务器内存后,才会触发AS ...