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

优采云 发布时间: 2022-03-05 09:24

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

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

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

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

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

  

  Scrapy的运行过程

  代码写好了,程序开始运行了……

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

  制作一个Scrapy爬虫一共需要4个步骤:新建一个项目(scrapy startproject xxx):新建一个爬虫项目清除目标(写items.py):清除你要抓取的目标创建一个爬虫(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类型的类属性(可以理解为类似ORM的映射关系)来定义一个Item。

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

  三、制作蜘蛛(spiders/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 = []是搜索的域名范围,即爬虫的禁区。规定爬虫只爬取该域名下的网页,不存在的URL会被忽略。

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

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

  p>

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

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线