爬虫框架 Scrapy 详解

Python61

一、Scrapy 基础知识

Scrapy 是适用于 Python 的一个快速、高层次的屏幕抓取和 web 抓取框架,用于抓取 web 站点并从页面中提取结构化的数据。Scrapy 用途广泛,可以用于数据挖掘、监测和自动化测试。
Scrapy 是一个框架,可以根据需求进行定制。它也提供了多种类型爬虫的基类,如 BaseSpider、sitemap 爬虫等,最新版本又提供了 web2.0 爬虫的支持。

1、Scrapy 基本模块

(1) 调度器(Scheduler)

调度器,说白了把它假设成为一个 URL(抓取网页的网址或者说是链接)的优先队列,由它来决定下一个要抓取的网址是什么,同时去除重复的网址(不做无用功)。用户可以自己的需求定制调度器。
(2) 下载器(Downloader)

下载器,是所有组件中负担最大的,它用于高速地下载网络上的资源。Scrapy 的下载器代码不会太复杂,但 效率高,主要的原因是 Scrapy 下载器是建立在 twisted 这个高效的异步模型上的(其实整个框架都在建立在这个模型上的)。
(3) 爬虫(Spider)

爬虫,是用户最关心的部份。 用户定制自己的爬虫(通过定制正则表达式等语法),用于从特定的网页中提取自己需要的信息,即所谓的实体(Item)。例如使用 Xpath 提取感兴趣的信息。
用户也可以从中提取出链接,让Scrapy继续抓取下一个页面。
(4) 实体管道(Item Pipeline)

实体管道,用于接收网络爬虫传过来的数据,以便做进一步处理。例如 验证实体的有效性、清除不需要的信息、存入数据库(持久化实体)、存入文本文件等

输入验证码查看隐藏内容

扫描二维码关注本站微信公众号 Johngo学长
或者在微信里搜索 Johngo学长
回复 svip 获取验证码
wechat Johngo学长

相关文章
Python

FastAPI入门教程(持续更新中)

第一部分:基础学习 FastAPI 学习之路(一)fastapi--高性能web开发框架 FastAPI 学习之路(二) FastAPI 学习之路(三) FastAPI 学习之路(四) FastAPI...
Python

Python 协程并发下载斗鱼美女图片

仅用学习参考,转载请注明出处 爬虫技术第一步 作为爬虫技术第一步,就是可以使用爬取下载图片作为示例。 那么爬取图片,我们肯定去爬取美女图片作为第一步操作示例呀。 那么下面一个最重要的工作。 什么是最重...
Python

Pipenv 中安装 Django

安装 Pipenv ​​Pipenv​​ 是一个生产流的工具,旨在将最好的打包世界( bundler, composer, npm, cargo, yarn, etc. )带入 Python 世界。它...
Python

django分页再封装

本文对django分页再封装,支持自定义每页数据量,页码数量,是否保留原url请求参数。直接返回页码html。 页码数量 默认采用百度的分页模式,只显示10页,可自定义。 1.总页数少于10页,页面上...
Python

Python中的正则表达式

目录 ​​正则表达式​​ ​​re.match()函数​​ ​​re.search()函数​​ ​​re.match()和re.search()的联系和区别 ​​ ​​检索和替换(re.sub)​​ ...
Python

通过修改host加速访问GitHub

原理:绕过 DNS 解析,直接使用本地的 DNS 记录进行直接跳转。 点击 Ping 检测按钮 选择 TTL 和响应时间都比较小的两个响应 IP 选择好IP之后修改本机的hosts文件,Windows...
Python

学会python永不加班系列之操作excel

python作为一种解释性语言,简单高效的模式逐渐火爆。同时存在多种扩展性。 永不加班系列 python正确操作excel 实验环境: 系统:win10 语言:python3.8 承载软件:pycha...
Python

golang 使用 gRPC

RPC RPC(Remote Procedure Call: 远程过程调用)是一个计算机通信协议,该协议允许运行于一台计算机的程序调用另一个地址空间(通常为一个开放网络的一台计算机)的子程序,而程序员...
Python

HTML & CSS 视觉设计

文本对齐 Text Align web 内容大部分都是文本。 CSS 里面的 text-align 属性可以控制文本的对齐方式。 text-align: justify; 将文本隔开,使每行的宽度相等...
Python

【Python】秀人集-写真集-爬虫-2.0

好久不见呀,各位。[/坏笑] 自从上次发布文章已经过去了许久,之前承诺过的2.0版本我就现在嘛出来吧。(毕竟,评论区都已经开始催了,拖不了了...) emm...具体的网页链接我就不写在正文了,我会放...