网页抓取qq(Scrapyscrapy网络爬虫运行流程及组件:Scrapy)

优采云 发布时间: 2021-11-22 22:21

  网页抓取qq(Scrapyscrapy网络爬虫运行流程及组件:Scrapy)

  1.scrapy的基本理解

  Scrapy是一个为爬取网站数据和提取结构化数据而编写的应用框架。它可用于包括数据挖掘、信息处理或存储历史数据在内的一系列程序中。它最初是为页面抓取(更准确地说,网络抓取)而设计的,也可以用于检索 API(如 Web 服务)或一般网络爬虫返回的数据。

  Scrapy还可以帮你实现爬虫过程中的网站认证、内容分析处理、重复爬取、分布式爬取等高级爬虫框架。

  Scrapy主要包括以下组件:

  Scrapy的运行过程大致如下:

  1.首先,引擎从调度器中获取一个链接(URL),用于下一次抓取

  2. 引擎将URL封装成请求(Request)发送给下载器,下载器下载资源并封装成响应包(Response)

  3.然后,爬虫解析Response

  4.如果实体(Item)被解析,就会交给实体管道做进一步处理。

  5.如果解析出来的是一个链接(URL),那么这个URL就会交给Scheduler等待爬取

  2.安装scrapy

  虚拟环境安装:

  sudo pip install virtualenv #安装虚拟环境工具

  virtualenv ENV #创建虚拟环境目录

  source ./ENV/bin/active #激活虚拟环境

  pip install Scrapy #验证是否安装成功

  pip list #验证安装

  可以进行如下测试:

  长凳

  3.使用scrapy

  在爬取之前,您需要创建一个新的 Scrapy 项目。输入要保存代码的目录,然后执行:

  $ scrapy startproject 教程

  该命令会在当前目录下新建一个目录tutorial,其结构如下:

  

|____scrapy.cfg

|____tutorial

| |______init__.py

| |______init__.pyc

| |____items.py

| |____items.pyc

| |____pipelines.py

| |____settings.py

| |____settings.pyc

| |____spiders

| | |______init__.py

| | |______init__.pyc

| | |____example.py

| | |____example.pyc

  这些文件主要是:

  scrapy.cfg:项目配置文件

  教程/:项目python模块,你会在这里添加代码

  教程/items.py:项目项目文件

  教程/pipelines.py:项目管道文件

  tutorial/settings.py:项目配置文件

  教程/蜘蛛:放置蜘蛛的目录

  3.1. 定义项

  items 是将加载捕获数据的容器。它的工作原理类似于 Python 中的字典,但它提供了更多保护,例如填充未定义的字段以防止拼写错误。创建一个scrapy.Item类,定义类型为scrapy.Field的class属性声明了一个Item。我们为所需的项目建模。在教程目录中的 items.py 文件中进行编辑。

  3.2. 写作蜘蛛

  Spider 是一个用户编写的类,用于从域(或域组)中抓取信息,定义用于下载的初步 URL 列表,如何跟踪链接,以及如何解析这些网页的内容以提取项目。

  要创建 Spider,请继承 scrapy.Spider 基类,并确定三个主要的、必需的属性:

  name:爬虫的标识名。它必须是独一无二的。您必须在不同的爬虫中定义不同的名称。

  start_urls:收录Spider启动时抓取的URL列表。因此,要检索的第一页将是其中之一。从初始 URL 获取的数据中提取后续 URL。我们可以使用正则表达式来定义和过滤需要跟进的链接。

  parse():是spider的一种方法。调用时,在下载每个初始 URL 后生成的 Response 对象将作为唯一参数传递给函数。该方法负责解析返回的数据(响应数据),提取数据(生成项),生成需要进一步处理的URL的Request对象。

  该方法负责解析返回的数据,匹配捕获的数据(解析为item),跟踪更多的URL。

  在/tutorial/tutorial/spiders目录下创建

  例子.py

  3.3。爬行

  进入项目根目录,运行命令

  $scrapy 爬取示例

  完整代码参考:标题中有抓取京东和豆瓣的方法。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线