scrapy分页抓取网页(制作Scrapy爬虫一共需要4步:新建项目(scrapy))

优采云 发布时间: 2021-10-09 23:11

  scrapy分页抓取网页(制作Scrapy爬虫一共需要4步:新建项目(scrapy))

  Scrapy 是一个用 Python 编写的应用框架,用于抓取 网站 数据并提取结构化数据。

  Scrapy 常用于一系列程序,包括数据挖掘、信息处理或存储历史数据。

  通常我们可以通过Scrapy框架轻松实现爬虫抓取指定网站的内容或图片。

  Scrapy 架构图(绿线为数据流)

  

  Scrapy 操作流程

  代码写好,程序开始运行...

  注意!只有当调度器中没有请求时,整个程序才会停止,(即对于下载失败的 URL,Scrapy 会重新下载。)

  制作一个Scrapy爬虫一共需要4步:新建项目(scrapy startproject xxx):新建一个爬虫项目,指定目标(写items.py):指定要爬取的目标, make a spider (spiders/xxspider.py) ): 制作一个爬虫并开始爬取网络存储内容 (pipelines.py): 设计一个管道来存储爬取的内容 安装 Windows 安装方法

  升级pip版本:

  pip install --upgrade pip

  通过pip安装Scrapy框架:

  pip install Scrapy

  Ubuntu 安装方法

  安装非 Python 依赖项:

  sudo apt-get install python-dev python-pip libxml2-dev libxslt1-dev zlib1g-dev libffi-dev libssl-dev

  通过pip安装Scrapy框架:

  sudo pip install scrapy

  Mac OS 安装方法

  对于Mac OS系统,由于系统本身会引用内置的python2.x库,默认安装的包是不能删除的,但是可以使用python2.x来安装Scrapy会报错,使用python3.x安装也是报错。终于没有找到直接安装Scrapy的方法,所以就用另一种安装方式来讲解安装步骤。解决方案是使用virtualenv。安装。

  $ sudo pip install virtualenv

$ virtualenv scrapyenv

$ cd scrapyenv

$ source bin/activate

$ pip install Scrapy

  安装完成后,在命令终端输入scrapy,提示类似如下结果,表示安装成功。

  

  介绍案例研究目标一. 新项目(scrapy startproject)

  在爬取之前,必须创建一个新的 Scrapy 项目。进入自定义项目目录,运行以下命令:

  scrapy startproject mySpider

  其中mySpider为项目名,可以看到会创建一个mySpider文件夹,目录结构大致如下:

  简单介绍一下各个主文件的作用:

  mySpider/

scrapy.cfg

mySpider/

__init__.py

items.py

pipelines.py

settings.py

spiders/

__init__.py

...

  这些文件是:

  二、明确目标(mySpider/items.py)

  我们打算获取网站中所有讲师的姓名、职称和个人信息。

  打开 mySpider 目录下的 items.py。

  Item 定义了一个结构化的数据字段,用于保存抓取到的数据,有点像 Python 中的 dict,但提供了一些额外的保护以减少错误。

  可以通过创建scrapy.Item类并定义scrapy.Field类型的类属性来定义Item(可以理解为类似于ORM的映射关系)。

  接下来,创建一个 ItcastItem 类并构建一个项目模型。

  三、制作爬虫(spider/itcastSpider.py)

  爬虫功能需要分为两步:

  1. 爬取数据

  在当前目录下输入命令,会在mySpider/spider目录下创建一个名为itcast的爬虫,并指定爬取域的范围:

  scrapy genspider itcast "itcast.cn"

  打开mySpider/spider目录下的itcast.py,默认添加如下代码:

  import scrapy

class ItcastSpider(scrapy.Spider):

name = "itcast"

allowed_domains = ["itcast.cn"]

start_urls = (

'http://www.itcast.cn/',

)

def parse(self, response):

pass

  其实我们也可以创建itcast.py,自己写上面的代码,不过使用命令可以省去写固定代码的麻烦

  要创建Spider,您必须使用scrapy.Spider 类创建一个子类,并确定三个必需属性和一个方法。

  name = "":此爬虫的标识名称必须是唯一的。不同的爬虫必须定义不同的名称。

  allow_domains = [] 是要搜索的域名范围,即爬虫的限制区域。规定爬虫只爬取该域名下的网页,不存在的网址将被忽略。

  start_urls = ():已爬取的 URL 的祖先/列表。爬虫从这里开始抓取数据,所以第一次下载数据会从这些url开始。其他子 URL 将从这些起始 URL 继承。

  parse(self, response):解析的方法。每个初始 URL 下载后都会调用它。调用时,每个 URL 返回的 Response 对象作为唯一参数传入。主要功能如下:

  负责解析返回的网页数据(response.body),提取结构化数据(生成item)

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线