美文网首页网络爬虫框架——scrapy
1.python爬虫——开源项目scrapy

1.python爬虫——开源项目scrapy

作者: abeb6ca9bb86 | 来源:发表于2017-02-19 23:06 被阅读721次

PySpider

PySpider详细介绍

PySipder是一个Python爬虫程序

演示地址:http://demo.pyspider.org/

l使用Python编写脚本,提供强大的API

lPython 2&3

l强大的WebUI和脚本编辑器、任务监控和项目管理和结果查看

l支持JavaScript页面

l后端系统支持:MySQL,MongoDB, SQLite, Postgresql

l支持任务优先级、重试、定期抓取等

l分布式架构

下载地址:https://github.com/binux/pyspider

Scrapy

Scrapy是一套基于基于Twisted的异步处理框架,纯python实现的爬虫框架,用户只需要定制开发几个模块就可以轻松的实现一个爬虫,用来抓取网页内容以及各种图片

下载链接:

https://github.com/scrapy/scrapy

Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。

所谓网络爬虫,就是一个在网上到处或定向抓取数据的程序,当然,这种说法不够专业,更专业的描述就是,抓取特定网站网页的HTML数据。抓取网页的一般方法是,定义一个入口页面,然后一般一个页面会有其他页面的URL,于是从当前页面获取到这些URL加入到爬虫的抓取队列中,然后进入到新页面后再递归的进行上述的操作,其实说来就跟深度遍历或广度遍历一样。

Scrapy使用Twisted这个异步网络库来处理网络通讯,架构清晰,并且包含了各种中间件接口,可以灵活的完成各种需求。

l引擎(Scrapy

Engine),用来处理整个系统的数据流处理,触发事务。

l调度器(Scheduler),用来接受引擎发过来的请求,压入队列中,并在引擎再次请求的时候返回。

l下载器(Downloader),用于下载网页内容,并将网页内容返回给蜘蛛。

l蜘蛛(Spiders),蜘蛛是主要干活的,用它来制订特定域名或网页的解析规则。编写用于分析response并提取item(即获取到的item)或额外跟进的URL的类。每个spider负责处理一个特定(或一些)网站。

l项目管道(Item

Pipeline),负责处理有蜘蛛从网页中抽取的项目,他的主要任务是清晰、验证和存储数据。当页面被蜘蛛解析后,将被发送到项目管道,并经过几个特定的次序处理数据。

l下载器中间件(Downloader

Middlewares),位于Scrapy引擎和下载器之间的钩子框架,主要是处理Scrapy引擎与下载器之间的请求及响应。

l蜘蛛中间件(Spider

Middlewares),介于Scrapy引擎和蜘蛛之间的钩子框架,主要工作是处理蜘蛛的响应输入和请求输出。

l调度中间件(Scheduler

Middlewares),介于Scrapy引擎和调度之间的中间件,从Scrapy引擎发送到调度的请求和响应。

爬取流程

上图绿线是数据流向,首先从初始URL开始,Scheduler会将其交给Downloader进行下载,下载之后会交给Spider进行分析,Spider分析出来的结果有两种:一种是需要进一步抓取的链接,例如之前分析的“下一页”的链接,这些东西会被传回Scheduler;另一种是需要保存的数据,它们则被送到Item Pipeline那里,那是对数据进行后期处理(详细分析、过滤、存储等)的地方。另外,在数据流动的通道里还可以安装各种中间件,进行必要的处理。

数据流

Scrapy中的数据流由执行引擎控制,其过程如下:

引擎打开一个网站(open a domain),找到处理该网站的Spider并向该spider请求第一个要爬取的URL(s)。

引擎从Spider中获取到第一个要爬取的URL并在调度器(Scheduler)以Request调度。

引擎向调度器请求下一个要爬取的URL。

调度器返回下一个要爬取的URL给引擎,引擎将URL通过下载中间件(请求(request)方向)转发给下载器(Downloader)。

一旦页面下载完毕,下载器生成一个该页面的Response,并将其通过下载中间件(返回(response)方向)发送给引擎。

引擎从下载器中接收到Response并通过Spider中间件(输入方向)发送给Spider处理。

Spider处理Response并返回爬取到的Item及(跟进的)新的Request给引擎。

引擎将(Spider返回的)爬取到的Item给Item

Pipeline,将(Spider返回的)Request给调度器。(从第二步)重复直到调度器中没有更多地request,引擎关闭该网站。

官方教程

http://scrapy-chs.readthedocs.io/zh_CN/latest/intro/tutorial.html

安装

最快方式是如下命令:

pipinstall scrapy

当然前提需要时有PIP命令了。

Portia

Portia是scrapyhub开源的一款可视化的爬虫规则编写工具。它提供可视化的Web页面,你只需要通过点击标注页面上你需要抽取的数据,不需要任何编程知识即可完成规则的开发。

这些规则可以在#Scrapy#中使用,用于抓取页面。

https://github.com/scrapinghub/portia

感谢打赏~~

相关文章

  • 1.python爬虫——开源项目scrapy

    PySpider PySpider详细介绍 PySipder是一个Python爬虫程序 演示地址:http://d...

  • scrapy-开始

    scrapy是基于python的开源爬虫项目 官方网站:https://scrapy.org/ 项目地址:http...

  • 学习网址

    Python开源爬虫项目代码:抓取淘宝、京东、QQ、知网数据 scrapy_jingdong[9]- 京东爬虫。基...

  • scrapy简单操作流程、目录介绍

    新建爬虫项目 scrapy startproject 项目名称 创建爬虫文件 scrapy genspider 爬...

  • scrapy简单操作流程

    新建爬虫项目 scrapy startproject 项目名称 创建爬虫文件 scrapy genspider 爬...

  • scrapy简单操作流程、目录介绍

    新建爬虫项目 scrapy startproject 项目名称 创建爬虫文件 scrapy genspider 爬...

  • Scrapy笔记

    Scrapy笔记 pip 指定源安装模块 创建Scrapy项目 创建Scrapy爬虫程序 启动Scrapy爬虫 在...

  • Scrapy修改本地IP

    创建scrapy项目:scrapy startproject 项目名scrapy genspider 爬虫名 ww...

  • 2018-05-13

    Scrapy爬虫 1.新建爬虫工程 scrapy startproject Spider(项目名字) 2.创建爬虫...

  • Scrapy的使用

    创建一个Scrapy项目 Scrapy的项目结构 spiders:编写爬虫的目录 爬虫的编写规则 运行你的爬虫

网友评论

    本文标题:1.python爬虫——开源项目scrapy

    本文链接:https://www.haomeiwen.com/subject/yxhswttx.html