Scrapy框架的安装及使用

步骤1、环境准备

  右击Ubuntu操作系统桌面,从弹出菜单中选择【Open in Terminal】命令 打开终端。

  通过【cd /home】切换到home目录下。【ls】查看该目录下的所有内容。

图1 切换目录

  【mkdir scrapy】在home目录下创建scrapy文件夹。

图2 创建文件夹

步骤2、Scrapy安装

  【pip install scrapy】安装爬虫框架Scrapy,(该框架虚拟机已安装,无需执行,制作参考)

图3 安装Scrapy

  【Scrapy】已安装成功,版本为1.5

图4 验证Scrapy

步骤3、Scrapy操作

  在开始爬取之前,必须创建一个新的scrapy项目

  【cd scrapy】切换至scrapy的目录

  【scrapy startproject movie】创建scrapy项目,名为movie.

图5 创建Scrapy项目

  【tree】查看项目结构

  scrapy.cfg 项目的配置信息,主要为Scrapy命令行工具提供一个基础的配置信息。(真正爬虫相关的配置信息在settings.py文件中)

  items.py 设置数据存储模板,用于结构化数据,如:Django的Model

  pipelines 数据处理行为,如:一般结构化的数据持久化

  settings.py 配置文件,如:递归的层数、并发数,延迟下载等

  spiders 爬虫目录,如:创建文件,编写爬虫规则

图6 项目结构

  定义要抓取的数据

  Item 是保存爬取到的数据的容器;其使用方法和python字典类似, 并且提供了额外保护机制来避免拼写错误导致的未定义字段错误。

  【vim item.py】编辑item文件。

图7 数据item

  回车后按【i】进入编辑状态。编辑信息如下。获取电影名字。

图8 编辑信息

  编辑完毕后,按【esc】退出编辑状态,【:wq】保存并退出编辑框。

  【cd spider】进入spider目录,【vim meiju.py】回车后创建并编辑meiju文件。

图9 创建Python文件

  回车后按【i】进入编辑状态,编辑如下信息。

  Spider是用户编写用于从单个网站(或者一些网站)爬取数据的类。

  其包含了一个用于下载的初始URL,如何跟进网页中的链接以及如何分析页面中的内容, 提取生成 item 的方法。

  为了创建一个Spider,您必须继承 scrapy.Spider 类,且定义以下三个属性:

  name: 用于区别Spider。 该名字必须是唯一的,您不可以为不同的Spider设定相同的名字。

  start_urls: 包含了Spider在启动时进行爬取的url列表。 因此,第一个被获取到的页面将是其中之一。 后续的URL则从初始的URL获取到的数据中提取。

  parse() 是spider的一个方法。 被调用时,每个初始URL完成下载后生成的 Response 对象将会作为唯一的参数传递给该函数。 该方法负责解析返回的数据(response data),提取数据(生成item)以及生成需要进一步处理的URL的 Request 对象。

图10 编辑Python文件

  【cd ../..】切换项目的目录。【scrapy crawl meiju】运行该项目

图11 运行Scrapy项目

  根据打印的信息判断请求成功。

图12 信息打印

  在浏览器中输入URL,根据判断得知。

  【//ul[@class=”top-list fn-clear”]/li】所有的电影信息

  【./h5/a/@title】电影的名称

图13 分析URL

  再次编辑meiju文件。

图14 编辑Python文件

  修改程序如下。通过选择器(Selectors)用XPath来提取数据

图15 选择器

  编辑完毕后,按【esc】退出编辑状态,【:wq】保存并退出编辑框。

  【cd ..】切换上级目录。

  【vim settings.py】编辑文件,设置下载的数量。

图16 编辑settings.py文件

  回车后按【i】进入编辑状态。编辑信息如下。获取电影名字。(只需在文件中找到该行,取消掉注释修改大小即可,)

图17 编辑文件

  编辑完毕后,按【esc】退出编辑状态,【:wq】保存并退出编辑框。

  【vim pipelines.py】编辑pipelines.py文件。

图18 编辑pipelines文件

  回车后按【i】进入编辑状态。编辑信息如下。将电影名字数据写入txt文件中。

图19 数据写入

  编辑完毕后,按【esc】退出编辑状态,【:wq】保存并退出编辑框。

  【cd ..】切换至上级目录。

  【scrapy crawl meiju】运行项目进行爬取

图20 运行Scrapy项目

  【ls】查看该目录下生成一个movies.txt文件。

  【cat movies.txt】爬取到前100个电影名字。

图21 查看运行效果

猜你喜欢

转载自www.cnblogs.com/yu-1104/p/9050441.html