关于Python网络爬虫框架scrapy
作者:菜鸟小超 发布时间:2023-03-17 17:02:50
标签:Python,爬虫,scrapy,框架
scrapy爬虫框架介绍
scrapy不是一个简单的函数功能库,而是一个爬虫框架
爬虫框架:
爬虫框架是实现爬虫功能的一个软件结构和功能组件的集合。
爬虫框架是一个半成品,能够帮助用户实现专业网络爬虫。
scrapy爬虫框架结构
“5+2”结构:
ENGINE :已有的,核心,控制所有模块之间的数据流,根据条件触发事件
SCHEDULER:已有的,对所有的爬虫请求进行调度管理
ITEM PIPELINES :框架出口,用户编写,以流水线方式处理Spider产生的爬取项,由一组操作顺序组成,类似流水线,每个操作是一个item pipline类型,可能操作包括:清理,检验和查重爬取项中的HTML数据,将数据存储到数据库
SPIDERS :框架入口,用户编写,解析downloader返回的响应,产生爬取项,以及额外的爬取请求
DOWNLOADER :已有的,根据请求下载网页
2个MIDDLEWARE:Download Middleware:实施Engine,Scheduler和Downloader之间用户可配置的控制,即用户可以修改、丢弃、新增请求或响应。Spider Middleware,对spider的请求和爬取项的再处理。修改、丢弃、新增请求或爬取项。
requests库和scrapy库比较
相同点:两者都可以进行页面请求和爬取,Python爬虫的两个重要技术路线。 两者可用性好,文档丰富,入门简单。 两者都没有处理js、提交表单、应对验证码等功能(可扩展)
不同点:
requests | scrapy |
页面级爬虫 | 网站级爬虫 |
功能库 | 框架 |
并发性考虑不足,性能较差 | 并发性好,性能较高 |
重点在于页面下载 | 重点在于爬虫结构 |
定制灵活 | 一般定制灵活,深度定制困难 |
上手十分简单 | 入门稍难 |
scrapy的常用命令
requests | scrapy |
页面级爬虫 | 网站级爬虫 |
功能库 | 框架 |
并发性考虑不足,性能较差 | 并发性好,性能较高 |
重点在于页面下载 | 重点在于爬虫结构 |
定制灵活 | 一般定制灵活,深度定制困难 |
上手十分简单 | 入门稍难 |
来源:https://blog.csdn.net/weixin_41777118/article/details/89207255
0
投稿
猜你喜欢
- 由于:Django处理静态文件不太友好;以后有可能需要处理php或者其他资源的请求;所以考虑结合nginx,使用nignx做它擅长的路由分发
- 在应用程序的开发中,有些输入信息是动态的,比如我们要注册一个员工的工作经历,比如下图如果做成死的,只能填写三个,如果是四个呢?或者更多呢,那
- 前言今天就来学习一下图形设计界面的美化,首先我们知道 QtDesigner设计出来的界面默认是不太怎么美观的。所以在以后的实际开发中很多界面
- 很多人认为python中的字典是无序的,因为它是按照hash来存储的,但是python中有个模块collections(英文,收集、集合),
- 一、使用python内置commands模块执行shellcommands对Python的os.popen()进行了封装,使用SHELL命令
- 这次主要教的是如何通过Python 获取Windows系统下的所有的磁盘盘符,以列表的形式展示出来,获取磁盘号下的盘符包括能够获取到我们正在
- 本文实例汇总了python求列表交集的方法。分享给大家供大家参考。具体方法如下:交集对于给定的两个集合A 和 集合B 的交集是指含有所有既属
- 前言在前几天的文章中我们讲解了如何从Word表格中提取指定数据并按照格式保存到Excel中,今天我们将再次以一位读者提出的真实需求来讲解如何
- strConnString = "driver={MySQL ODBC 3.51 
- anaconda指的是一个开源的Python
- 询问度娘搭好appium和python环境,开启移动app自动化的探索(基于Android),首先来记录下如何启动待测的app吧!如何启动A
- 这是借鉴了一位兄弟的代码,然后进行修改的,原来代码存在问题,用了2小时,自己修改,终于画出了滑稽脸,也算是对于今天学的turtle绘画库的一
- 多线程多线程类似于同时执行多个不同程序,多线程运行有如下优点:使用线程可以把占据长时间的程序中的任务放到后台去处理。用户界面可以更加吸引人,
- 一、os函数目录1 os.access(path, mode) 检验权限模式2 os.chdir(path) 改变当前工
- 1. 单行导入与多行导入在 Go 语言中,一个包可包含多个 .go 文件(这些文件必须得在同一级文件夹中),只要这些 .go 文件的头部都使
- NTP(Network Time Protocol)是由美国德拉瓦大学的David L. Mills教授于1985年提出,设计用来在Inte
- 定义行为要定义行为,通过继承 yii\base\Behavior 或其子类来建立一个类。如:namespace app\components
- 让我们看看如何在 Python 中复制数组。 有 3 种复制数组的方法:只需使用赋值运算符。浅拷贝深拷贝1 使用赋值运算符我们可以使用赋值运
- 创建测试dataframe:>>> import pandas as pd>>> df = pd.Dat
- 在创建SQL Server 2000 故障转移群集之前,必须配置 Microsoft 群集服务 (MSCS) 并使用 Microsoft W