爬虫(实战):scrapy+mysql 豆瓣电影top250

1.前言

​ 作者学习了scrapy爬虫框架,想把获取的爬虫信息保存至本地mysql数据库中,查找了下不少作者的资料,这里整理了本人的学习经过,记录+分享在这里,望读者交流学习和批评建议。

2.编辑环境

在这里插入图片描述

3.项目分享
3.1 项目目录结构

在这里插入图片描述

结构简介:
1.spiders-是主爬虫文件夹,其中mvSpi.py是网页信息获取的主代码文件
2.items.py-定义了将要存储在mysql中结构化数据字段
3.pipelines.py-管道文件,定义数据库连接与操作信息等
4.setting.py-设置文件,定义请求头、mysql配置等信息
5.run.py-运行文件,以便不进入命令行,也能运行项目
以上未介绍的文件,为项目创建初始内容,本项目没有进行相应修改。
3.2 项目操作过程

(1)项目创建

以下操作默认配置好了python环境
-首先,在cmd命令行cd到要放scrapy项目的文件夹路径下
-然后,运行scrapy startproject mvSrc 命令,会出现上面的目录结构了
-最后,cd到mvSrc目录下,运行scrapy genspider mvSpi movie.douban.cn 会在spiders下创建爬虫文件

(2) mvSpi.py的编辑

​ 这里是网页信息获取的主代码文件,当然在编辑具体的网页信息获取程序前,需要对目标网址进行网页分析。目标网页内容如下:

在这里插入图片描述
​ 这里我们想要获取的电影信息有|电影名称|导演|评分|剧情分类|电影网址|
在这里插入图片描述在这里插入图片描述
​ 在解析网页内容时,可以使用shell交互式平台进行取数测试,具体步骤就是cd到项目目录下,运行如下代码:

>>>scrapy shell https://movie.douban.com/top250  
In[1]:response.xpath('./div[@class="hd"]/a/span[1]/text()').extract()

在这里插入图片描述在这里插入图片描述
(3) items.py的编辑

​ 定义将要存储在mysql中结构化数据字段
在这里插入图片描述
​ 当然,也要在你本地mysql中创建相应的库表

CREATE TABLE `mvtable` if not exists (
  `mv_name` varchar(100) DEFAULT NULL COMMENT '电影名称',
  `mv_update` varchar(200) DEFAULT NULL COMMENT '更新时间',
  `mv_actor` varchar(200) NOT NULL COMMENT '导演',
  `mv_score` varchar(50) DEFAULT NULL COMMENT '评分',
  `mv_class` varchar(20) CHARACTER SET utf8mb3 COLLATE utf8_general_ci DEFAULT NULL COMMENT '剧情分类',
  `mv_mvUrl` varchar(200) NOT NULL COMMENT '网址链接',
  PRIMARY KEY (`mv_mvUrl`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3;

(4) pipelines.py的编辑

​ 定义数据库连接与操作信息
在这里插入图片描述在这里插入图片描述
(5) setting.py的编辑

​ 定义请求头、mysql配置等信息
在这里插入图片描述在这里插入图片描述
(6) run.py运行程序的编辑
在这里插入图片描述

3.3 项目结果展示

​ run.py文件运行后,打开mysql中的mvtable如下所示:

在这里插入图片描述

4.项目总结
4.1 问题与解决

4.2 scrapy框架内在联系

在这里插入图片描述

结构简介:
1.spiders-是主爬虫文件夹,其中mvSpi.py是网页信息获取的主代码文件
2.items.py-定义了将要存储在mysql中结构化数据字段
3.pipelines.py-管道文件,定义数据库连接与操作信息等
4.setting.py-设置文件,定义请求头、mysql配置等信息
5.run.py-运行文件,以便不进入命令行,也能运行项目
以上未介绍的文件,为项目创建初始内容,本项目没有进行相应修改。

​ 首先,spiders文件夹下mvSpi.py时主爬虫代码,这里继承了scrapy.spider类方法,引用了items的函数MvscrItem,产生了parse函数下的结果集item;

​ 然后,pipelines.py 管道文件,接收scrapy.spider类方法与结果集item,将数据进行相应的保存;

​ 最后,setting.py 配置文件,为以上操作进行权限的关联。

  • 3
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值