网页数据抓取怎么写(一下框架介绍和安装Scrapy的用法(一)_)
优采云 发布时间: 2022-01-14 08:08网页数据抓取怎么写(一下框架介绍和安装Scrapy的用法(一)_)
在前面的章节中,我们用尽可能少的代码演示了爬虫的基本原理。如果只需要抓取一些简单的数据,那么我们可以通过修改前面的代码来完成任务。但是当我们需要完成一些复杂的*敏*感*词*爬取任务时,就需要考虑更多的事情,比如爬虫的可扩展性、爬取效率等。
现在让我们回顾一下我们的爬取过程:从要下载的 URL 列表中提取 URL;构建并发送 HTTP 请求以下载网页;解析网页以提取数据,解析网页以提取URL并将其添加到要下载的列表中;存储从网页中提取的数据。这个过程中有很多地方是通用的,只有网页数据和URL提取与具体的爬取任务相关。因为通用代码部分可以重用,所以框架就诞生了。现在python下的爬虫框架很多,比较常用的是Scrapy。接下来,我们简单介绍一下Scrapy的用法。
Scrapy框架介绍及安装
Scrapy 是一个用 python 开发的快速高效的网页抓取框架,用于抓取网站并从页面中提取结构化数据。Scrapy 广泛用于数据挖掘、监控和自动化测试。Scrapy的安装也很简单,只要运行pip install Scrapy,我们需要的开发环境就准备好了。
创建一个 Scrapy 项目
这里我们将使用 Scrapy 框架重写我们之前的爬虫。在我们开始之前,我们需要创建一个新的 Scrapy 项目。假设我们的项目名为豆瓣,运行scrapy startproject Douban。创建豆瓣文件夹,这个文件夹收录了我们爬虫的基本框架。
这里有几个更重要的概念:
创建项目类
我们使用Item类来封装从网页解析出来的数据,方便各个模块之间的传递和进一步处理。爬虫的Item类很简单。它直接继承了scrapy的Item类,并定义了相应的属性字段来存储数据。每个字段都是 scrapy.Field() 类型,可用于存储任何类型的数据。现在看看我们的 Item 类定义:
创建蜘蛛类
Spider 类主要用于解析数据,它收录一些用于下载的初始 URL 以及用于提取网页中的链接和数据的方法。所有 Spider 必须继承自 scrapy.Spider 类并实现三个属性:
创建管道类
Scrapy 使用管道模块来保存对数据的操作。即Spider类的parse()方法返回的Item对象会传递给Pipeline中的类,Pipeline会完成具体的保存工作。创建 Scrapy 项目时会自动创建一个 pipeline.py 文件,其中收录一个默认的 Pipeline 类。
Pipeline 类会在 process_item() 方法中处理数据,然后在最后调用 close_spider() 方法,所以我们需要这两个方法来做相应的处理。
运行爬虫
在项目目录下,执行命令scrapy crawl Douban,我们可以看到爬虫开始爬取网页。
总结
现在让我们回顾一下我们所有的代码在 Scrapy 框架下是如何工作的:
过去 文章:
Python爬虫入门,快速抓取海量数据5
Python爬虫入门,快速抓取海量数据4
Python爬虫入门,快速抓取海量数据3
Python爬虫入门,快速抓取海量数据2
Python爬虫入门,快速抓取海量数据1