大家好,我是不温卜火,是一名计算机学院大数据专业大三的学生,昵称来源于成语— 如果想要详细的查看Scrapy的相关内容可以自行查看官方文档。 Scrapy是适用于Python的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。 Scrapy吸引人的地方在于它是一个框架,任何人都可以根据需求方便的修改。它也提供了多种类型爬虫的基类,如BaseSpider、sitemap爬虫等,最新版本又提供了web2.0爬虫的支持。 Scrapy是一个用于爬网网站并提取结构化数据的应用程序框架,可用于各种有用的应用程序,例如数据挖掘,信息处理或历史档案。 尽管Scrapy原本是设计用来屏幕抓取(更精确的说,是网络抓取),但它也可以用来访问API来提取数据。 此部分来源于官方 为了能够展示出Scrapy带来的好处,博主将使用最简单的运行Spider的方式向您介绍Scrapy Spider的示例。 ① 总体 需要提前知道的一些小知识:在使用构造器的时候,使用XPath和CSS查询响应非常普遍,他们两个的快捷键分别为: 下图显示了Scrapy体系结构及其组件的概述,以及系统内部发生的数据流的概况(由红色箭头显示)。下面包括对这些组件的简要说明,以及有关它们的更多详细信息的链接。数据流也在下面描述。 官方原始 博主本人翻译如下 1.Scrapy Engine(引擎)从Spider中获取最初的爬取请求。 2.在Scrapy Engine(引擎)获取到来自于Spider的请求之后,会请求Scheduler(调度器)并告诉他下一个执行请求。 3.Scheduler(调度器)得到信息并把下一个请求返回给Engine。 4.通过Downloader Middlewares(下载器中间件),Scrapy Engine(引擎)把请求发送到Downloader(下载器)。 5.页面下载完成后, Downloader(下载器)会通过Downloader Middlewares(下载器中间件),生成一个带有该页面的Response(响应),并将其发送到Engine。 6.通过Spider Middleware(Spider中间件),Scrapy Engine(引擎)接收到来自于 Downloader(下载器)的响应并将其发送到Spider进行处理。 7.通过Spider Middleware(Spider中间件),Spider处理和响应来自于Scrapy Engine(引擎)的项目和新的需求。 8.Scrapy Engine(引擎)通过Item Pipelines(管道)发送处理的项目,然后把处理的请求返回到Scheduler(调度器),并要求今后可能请求爬行。 9.重复上述过程,直到不再有Scheduler(调度器)的请求为止。 Scrapy Engine(引擎):负责Spider、ItemPipeline、Downloader、Scheduler中间的通讯,信号、数据传递等。 Scheduler(调度器):它负责接受引擎发送过来的Request请求,并按照一定的方式进行整理排列,入队,当引擎需要时,交还给引擎。 Downloader(下载器):负责下载Scrapy Engine(引擎)发送的所有Requests请求,并将其获取到的Responses交还给Scrapy Engine(引擎),由引擎交给Spider来处理。 Spider(爬虫):它负责处理所有Responses,从中分析提取数据,获取Item字段需要的数据,并将需要跟进的URL提交给引擎,再次进入Scheduler(调度器)。 Item Pipeline(管道):它负责处理Spider中获取到的Item,并进行进行后期处理(详细分析、过滤、存储等)的地方。 Downloader Middlewares(下载中间件):下载器中间件是位于引擎和下载器之间的特定挂钩,它们在从引擎传递到下载器时处理请求,以及从下载器传递到引擎的响应。 如果需要执行以下操作之一,请使用Downloader中间件: Spider Middlewares(Spider中间件):一个可以自定扩展和操作引擎和Spider中间通信的功能组件。其是位于引擎和爬虫之间的特定挂钩,并且能够处理爬虫的输入(响应)和输出(项目和请求)。 如果需要,请使用Spider中间件 本次的就到这里了, 好书不厌读百回,熟读课思子自知。而我想要成为全场最靓的仔,就必须坚持通过学习来获取更多知识,用知识改变命运,用博客见证成长,用行动证明我在努力。
不温不火,本意是希望自己性情温和。作为一名互联网行业的小白,博主写博客一方面是为了记录自己的学习过程,另一方面是总结自己所犯的错误希望能够帮助到很多和自己一样处于起步阶段的萌新。但由于水平有限,博客中难免会有一些错误出现,有纰漏之处恳请各位大佬不吝赐教!暂时只有csdn这一个平台,博客主页:https://buwenbuhuo.blog.csdn.net/

官网地址:https://scrapy.org/本文主要讲的是一文带你快速了解Scrapy框架(版本2.3.0)。目录

一. Scrapy的简单介绍
文档地址如下:https://docs.scrapy.org/en/latest/intro/overview.html#walk-through-of-an-example-spider1.1 什么是Scrapy?
1.2 基本功能
二. 示例展示
2.1 官方案例
import scrapy class QuotesSpider(scrapy.Spider): name = 'quotes' start_urls = [ # 所要爬取的真实网址 'https://quotes.toscrape.com/tag/humor/', ] def parse(self, response): # 使用CSS选择器遍历quote元素,生成包含提取的报价文本和作者的Python dict,查找指向下一页的链接 for quote in response.css('div.quote'): yield { # 通过xpath的方式解析并获取出作者的名字 'author': quote.xpath('span/small/text()').get(), 'text': quote.css('span.text::text').get(), } next_page = response.css('li.next a::attr("href")').get() # 判断 如果下一页不为空,继续进行爬取操作 if next_page is not None: yield response.follow(next_page, self.parse)
quotes_spider.py 然后使用以下runspider命令运行Spiderscrapy runspider quotes_spider.py -o quotes.json
quotes.json文件中包含JSON格式的引号列表,其中包含文本和作者,如下所示(此处重新格式化以提高可读性)[{ "author": "Jane Austen", "text": "u201cThe person, be it gentleman or lady, who has not pleasure in a good novel, must be intolerably stupid.u201d" }, { "author": "Groucho Marx", "text": "u201cOutside of a dog, a book is man's best friend. Inside of a dog it's too dark to read.u201d" }, { "author": "Steve Martin", "text": "u201cA day without sunshine is like, you know, night.u201d" }, ...] 2.2 简单解析
humor的界面结构


② 文本
③ 作者

④ 翻页
都在源码中进行注释了)response.xpath()和response.css():
quote元素,生成包含文本和作者的Python dict,查找指向下一页的链接span/small/text()和span.text::text得到作者与其本人所发表的文本内容li.next a::attr("href")获取翻页后的内容并且做出判断如果不存在,则自动停止爬取。三. Scrapy架构概述
3.1 Scrapy架构的整体流程

Scrapy中的数据流由执行引擎控制,如下所示:

3.2 Scrapy框架的简单介绍
errback而不是回调。

如果我的博客对你有帮助、如果你喜欢我的博客内容,请“” “评论”“”一键三连哦!听说的人运气不会太差,每一天都会元气满满呦!如果实在要白嫖的话,那祝你开心每一天,欢迎常来我博客看看。
码字不易,大家的支持就是我坚持下去的动力。后不要忘了关注我哦!

本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算
官方软件产品操作指南 (170)