Scrapy爬取豆瓣图书保存MySQL实验

一、任务描述

  本实验任务主要对Scrapy爬取进行一些基本操作,通过完成本实验任务,要求学生熟练掌握数据爬取保存MySQL的操作,并对数据保存至MySQL的基本操作进行整理并填写工作任务报告。

二、任务目标

1、掌握Scrapy爬虫的原理

2、掌握MySQL基本操作

三、任务环境

Ubuntu16.04、Python2.7

四、任务分析

  Scrapy
  Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。

  MySQL数据库
  MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言–结构化查询语言(SQL)进行数据库管理。

五、任务实施

步骤1、环境准备

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

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

 

图1 切换目录

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

图2 创建文件夹

步骤2、数据爬取

  【cd scrapy】切换至scrapy目录下,【scrapy startproject douban】创建爬取的scrapy项目,【ll】查看创建成功的scrapy项目。

图3 创建Scrapy项目

  打开浏览器,输入豆瓣图书的地址https://read.douban.com/kind/114,可以看到,每本书的属性有:书名,作者,类别,评分,评价人数,图书介绍。

图4 URL

  【cd douban】切换至项目内,【scrapy genspider doubanspider https://read.douban.com】 会自动在spiders目录下生成一个doubanspider.py,这就是爬虫的代码模块。

图5 生成爬虫文件

  爬取的数据项。

  【cd douban】再次切换至目录下,【vim items.py】创建爬取的数据项。

图6 编辑item.py

  回车后进入编辑框内,按键盘【i】进入编辑状态,输入如下程序。

图7 编辑item.py

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

步骤3、网站结构分析

  不同的网站有不同的结构,爬虫要爬取哪个网站,就要分析一下对应的网站结构,在浏览器中右键选择【Inspect Element(Q)】。

  可以看到,每本图书的信息都保存在一个class=”info”的div里面,其对应的xpath路径为’//div[@class=”info”]’

图8 图书信息分析

  书名在class=”title”的div下面的一个a标签里面,其对应的xpath路径为’.//div[@class=”title”]/a/text()’

图9 书名分析

  作者在class=”labeled-text”的span下面的一个a标签里面,其对应的xpath路径为’.//span[@class=”labeled-text”]/a/text()’

图10 作者分析

  类别在itemprop=”genre”的一个span里面,其对应的xpath路径为’.//span[@itemprop=”genre”]/text()’

图11 类别分析

  评分在class=”rating-average”的一个span里面,其对应的xpath路径为’.//span[@class=”rating-average”]/text()’

图12 评分分析

  评分人数在class=”ratings-links”的a下面的一个span标签里面,其对应的xpath路径为’.//a[@class=”ratings-link”]/span/text()’

图13 评分人数分析

  图书介绍在class=”article-desc-brief”的一个div里面,其对应的xpath路径为’.//div[@class=”article-brief”]/text()’

图14 图书介绍分析

  下一页的连接在class=”next”的li下面的一个a标签里面的href属性里面,其对应的xpath路径为’//li[@class=”next”]/a/@href

图15 下一页分析

步骤4、豆瓣爬虫

  【cd spiders】切换至spiders目录下,【vim doubanspider.py】编辑创建的爬虫文件。

图16 编辑Python文件

  回车后进入编辑框内,按键盘【i】进入编辑状态,修改并输入如下程序。

  导入要爬取的数据项,构建爬虫所需的name、URL及爬取的内容。

图17 编辑Python文件

  在parse函数内通过for循环依次得到每一项的数据。

图18 parse函数

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

  【cd ..】返回上一级目录,【vim settings.py】编辑设置文件。

图19 编辑setting文件

  回车后进入编辑框内,按键盘【i】进入编辑状态,修改如下数据。

图20 编辑文件

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

  【cd ..】返回上一级目录,【scrapy crawl doubanspider -o doubanread.csv】运行Scrapy项目并将结果保存至doubanread.csv文件

图21 运行Scrapy项目

  【cat doubanread.csv】查看爬取的内容。

图22 查看爬取内容

步骤5、创建数据库

  【mysql -u root -p】回车后在Enter password:后输入密码root。回车后进入MySQL数据库。

图23 登录MySQL

  【show databases】显示所有的数据库,【create database douban】创建名为douban的数据库。

图24 创建数据库

  【use douban】使用数据库,

  【CREATE TABLE doubanread(

   id int(11) NOT NULL AUTO_INCREMENT,

   book_name varchar(255) DEFAULT NULL,

   author varchar(255) DEFAULT NULL,

  class_ varchar(255) DEFAULT NULL,

   grade varchar(255) DEFAULT NULL,

   count int(11) DEFAULT NULL,

   introduction varchar(255) DEFAULT NULL,

   PRIMARY KEY (id)

  ) ENGINE=InnoDB AUTO_INCREMENT=1409 DEFAULT CHARSET=utf8;】创建表。

图25 创建表

  【exit;】退出数据库。

图26 退出数据库

  【cd douban】切换目录,【vim pipelines.py】编辑pipelines.py文件。

图27 编辑pupelines文件

  回车后进入编辑框内,按键盘【i】进入编辑状态,修改如下数据

  导入MySQLdb数据库,配置数据库相关的信息。

图28 连接MySQL

  得到爬取的每一项,通过SQL语句将数据添加进入。

图29 获取爬取的每一项

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

  【vim setting.py】编辑setting.py文件

图30 编辑setting文件

  回车后进入编辑框内,按键盘【i】进入编辑状态,修改如下数据

图31 编辑文件

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

  【cd ..】返回上一级目录,【scrapy crawl doubanspider】运行scrapy项目。

图32 运行Scrapy项目

  进入MySQL数据库;【use douban】使用数据库。

图33 使用数据库

  【select * from doubanread】查看爬取的数据保存至MySQL数据库,使用Navicat等工具查看效果更好。

图34 查看数据

  【select count(*) from doubanread 】查看数据库内共有285条数据。

图35 查看数据
posted @ 2018-05-17 12:55  薛乔毓  阅读(761)  评论(0编辑  收藏  举报