爬虫框架

*爬虫框架是实现爬虫功能的一个软件结构和功能组件集合

*爬虫框架是一个半成品,能够帮助用户实现专业网络爬虫

Scrapy爬虫框架结构

"5+2"结构

Spiders(用户提供Url、以及解析内容)、Item pipelines(对提取的信息进行处理)模块需要用户编写(配置)

其他模块:Engine、Scheduler、Downloader模块已有实现,不需要用户进行修改

Engine:控制所有模块之间的数据流、根据条件触发事件,不需要用户修改

Downloader:根据请求下载网页,不需要用户修改

Scheduler:对所有爬取请求进行调度管理、不需要用户进行修改

Downloader Middleware(中间件)

目的:实施Engine、Scheduler和Downloader之间进行用户可配置的控制

功能:修改、丢弃、新增请求或响应

用户可以编写配置代码

Spider:解析Downloader返回的响应(Response)、产生爬取项(scraped item)、产生额外的爬取请求(Request)

Item pipelines:以流水线方式处理Spider产生的爬取项、由一组操作顺序组成,类似流水线,每个操作是一个Item Pipeline类型。

可能的操作包括:清理、检验和查重爬取项中的HTML数据、将数据存储到数据库。

Spider Middleware(中间件)

目的:对请求和爬取项的再处理

功能:修改、丢弃、新增请求或爬取项

用户可以编写配置代码

requests vs.Scrapy

requests

Scrapy

页面级爬虫

网站级爬虫

功能库

框架

并发性考虑不足,性能较差

并发性好,性能较高

重点在于页面下载

重点在于爬虫结构

定制灵活

一般定制灵活,深度定制困难

上手十分简单

入门稍难

两个方法看情况用

非常小的需求,用requests库

不太小的需求,Scrapy框架(持续周期性不间断爬取)

定制程度很高的需求(不考虑规模),自搭框架,requests>Scrapy

相同点

*两者都可以进行页面请求和爬取,python爬虫的两个重要技术路线。

*两者可用性都好,文档丰富,入门简单。

*两者都没有处理js、提交表单、应对验证码等功能(可扩展)。

python 爬虫 scrapy 和 requsts 哪个快_Scrapy爬虫框架结构以及和Requests库的比较相关推荐

  1. python 爬虫 scrapy 和 requsts 哪个快_Python爬虫:Scrapy研读之Request/Reponse

    本帖最后由 shenzhenwan10 于 2016-6-17 07:52 编辑 1,引言 在前一篇Scrapy:python3下的第一次运行测试 中,我们以官网的tutorial为例,成功的运行了S ...

  2. python gpu加速库比matlab快吗_Python之Unittest和Requests库详解

    1.按类来执行 import unittest class f1(unittest.TestCase): def setUp(self): pass def tearDown(self): pass ...

  3. 数据爬虫技术实例:大快在线爬虫安装教程

    在线爬虫是大快大数据一体化开发框架的重要组成部分,本篇重点分享在线爬虫的安装. 爬虫安装前准备工作:大快大数据平台安装完成.zookeeper.redis.elasticsearch.mysql等组件 ...

  4. python的scrapy框架的安装_Python爬虫基础(四)--Scrapy框架的安装及介绍

    Scrapy框架的介绍 安装: pip3 install Scrapy 安装测试: cmd命令行界面,输入:scrapy -h 框架安装完成: scrapy框架: 分为五个模块+两个中间件(5+2结构 ...

  5. Python利用Scrapy爬取前程无忧

    ** Python利用Scrapy爬取前程无忧 ** 一.爬虫准备 Python:3.x Scrapy PyCharm 二.爬取目标 爬取前程无忧的职位信息,此案例以Python为关键词爬取相应的职位 ...

  6. Python爬虫——Requests 库基本使用

    文章目录 Python爬虫--Requests 库基本使用 1.Requests简介和下载 2.Requests 库基本使用 Python爬虫--Requests 库基本使用 1.Requests简介 ...

  7. python.freelycode.com-不完整的Http读取和Python中的Requests库

    Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. requests库可以说是Python中使用最广泛的HTTP库了.然而,我相信大多数用户并不知道的是,re ...

  8. python scrapy框架爬虫_Scrapy爬虫框架教程(一)-- Scrapy入门

    前言 转行做python程序员已经有三个月了,这三个月用Scrapy爬虫框架写了将近两百个爬虫,不能说精通了Scrapy,但是已经对Scrapy有了一定的熟悉.准备写一个系列的Scrapy爬虫教程,一 ...

  9. Python面试必备—分布式爬虫scrapy+redis解析

    传智播客博学谷 微信号:boxuegu- get最新最全的IT技能 免费领取各种视频资料 注意:文末送书 很多小伙伴留言,最近准备跳槽,但是面试的机会比较少,好不容易得到面试机会,由于技术点的匮乏,面 ...

最新文章

  1. WPF Dispatcher介绍
  2. 部署高可用 Etcd 集群
  3. 使用mysql-proxy读写分离时的注意事项_mysql-proxy中Admin Plugin的使用以及读写分离的问题...
  4. WinForm小程序系列:注册表阅读器
  5. hadoop-1.2.1运行过程中遇到的问题
  6. Xcode打包ipa的基本步骤
  7. FPGA——HLS编程入门
  8. 以太坊存储项目Swarm (代币bzz)1.0 主网正式上线
  9. react中请求网络图片加载不出来的问题 解决
  10. 1487C - Minimum Ties
  11. 学习篇之数据分析库pandas
  12. Python实现截图?一文带你入门
  13. 想做吃鸡游戏么兄弟?98K轻量物理了解一下
  14. storm的容错机制
  15. 网页登录飞书妙记如何添加“飞书妙记”应用?
  16. 洛谷B2144 阿克曼(Ackmann)函数
  17. 【程序源代码】电商网站系统
  18. 52年了,东方红一号竟还在天上飞?!
  19. 计算机发展对自动化影响,我多对自动化与计算机关系的看法.doc
  20. Android U盘测速

热门文章

  1. linuxsvn源代码版本库建立
  2. 手机开机画面制作工具(LogoBuilder)
  3. Eclipse IDE for Java EE Developers 与Eclipse Classic 区别
  4. WINCE6.0操作系统---内核(kernel)学习
  5. java连接rabbitmq_没用过消息队列?一文带你体验RabbitMQ收发消息
  6. Chrome 正在测试标签页的预览功能
  7. mysql 多实例应用配置部署指南
  8. 10.4-全栈Java笔记:常用流详解(二)
  9. 复制虚拟机网卡eth0变eth1
  10. I/O多路转接之 select