首页 > 编程知识 正文

scrapy 全网爬虫,爬虫从入门到精通

时间:2023-05-05 00:08:15 阅读:175617 作者:4687

你好,欢迎来到二哥爬虫频道。 这次二哥打算再给大家带三天的Scrapy教程。 我记得三联哦~

另一方面,Scrapy Scrapy是为了获得网站的数据并提供结构性的数据而制作的APP框架,在使用Scrapy的情况下,我们可以用较少的代码实现迅速的捕获。

Scrapy爬网流程Scrapy的爬网流程图如下:

Scrapy的三个重要内置对象

请求对象响应对象item数据对象流程图解释

引擎(负责整个Scrapy Engine )系统中数据和信号的传递的)核心)调度程序)实现存储来自引擎的requests请求的队列,下载网页内容,下载网页内容传递给引擎管道(Pipeline )处理来自引擎的数据并进行数据持久化。)例如: (将数据存储在表/数据库中)中间件)降级

爬虫——URL(Requests ) ——中间件3354引擎——调度程序支持图(中间的绿色直线):Spiders通过ScrapyEngine发送请求requests

调度程序——请求——引擎——下载中间件——对应图中(右上绿色线):Scheduler处理后经过ScrapyEngine,下载中间件

下载程序——Reponses——下载中间件——引擎——爬虫中间件——爬虫对应图中(右下角的绿色线) :下载程序向互联网发送请求,接收Reponses

爬行动物——Reponses——引擎——管道(保存的数据) Spiders处理返回的Reponses,提取数据并通过ScrapyEngine传递给ItemPipeline进行数据保存

如果出现新的URL请求,则重复执行1234的处理,知道没有请求。 二、使用Scrapy编写Scrapy项目安装模块。 在pip install Scrapy中创建scrapy项目。 scrapy startproject文件夹名称的制作完成后,生成如下图所示的文件目录。

scrapy.cfg :项目设置文件items.py :项目目标文件pipelines.py :项目管道文件settings.py :项目设置文件spiders :爬行器步骤如下。

在创建的文件夹下运行CD:scrapy gen spider爬行动物名称的爬网域名称示例:

cd Sp_1

scrapygenspidercars _ data 12365 auto.com

执行完成后,爬虫文件将显示在spiders文件夹下。 文件中的格式如下。

写爬行动物这样我们就准备好了。 现在可以开始整治爬行动物了。

完善代码(这里列举最简单的小例子) )。

importscrapyclasscarsdataspider (scrapy.spider ) : name=' cars _ data ' allowed _ domains=[ ' 12365 auto.com ' ] response (: name _ car=response.XPath ) )./div(@class=(in_cxsx_b ' )1)/div ) @class='in_ )=name_car.extract () yield item在执行parse时可以直接使用scrapy的response对象执行Xpath。

请注意,response.xpath方法的返回值类型类似于list,其中包含一个selector对象。 操作与列表相同,但获取结果时有多种附加方法。

extract () :返回包含字符串的列表

extract_first () :返回列表中的第一个字符串,列表为空且不返回None

代码最后必须使用yield函数使整个函数成为生成器

此时尝试爬网数据,然后在Terminal中执行以下命令:

scrapy crawl name注意: name是您创建的爬行动物的名称,即爬行动物文件name=' '的内容

如果看到未报告错误的长字符串的输出,将证明运行成功。

保存数据时主要使用pipeline进行。

打开pipeline,找到与以下内容类似的代码并取消注释: 初始位置为65行左右。

item _ pipelines={ ' sp _1. pipelines.SP1 pipeline ' :300,}运行最终,您可以通过在terminal中运行以下脚本将文件另存为Json

scrapy crawl dmoz -o items.json

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。