scrapy爬取起点中文网24小时热销榜单(将数据存到数据库)
系列文章目录
第一章:scrapy爬取起点中文网24小时热销榜单
第二章:scrapy爬取苏州二手房交易信息
第三章:scrapy爬取QQ音乐榜单歌曲及豆瓣电影信息
第四章:scrapy爬取起点中文网24小时热销榜单(将数据存到数据库中)
文章目录
- 系列文章目录
- 前言
- 一、安装需要的库
- 二、项目分析
- 三、代码编写
- 1.编写piplines(将数据插入数据库)
- 2.编写settings(编写配置信息)
- 3.修改start
- 4.效果图
- 总结
前言
之前每次将爬虫得到的信息都存到了csv文件中,虽然可以用wps打开并进行修改,但是还有有一些不方便,这次就直接在程序中,将所的信息直接插到数据库中进行保存,对于日后的数据再次调用也方便了许多。
一、安装需要的库
1.安装数据库(博主选择的是mysql)
不是本次内容不说了,如果你的电脑是ubuntu可以看我另一篇博客
ubuntu20.04安装mysql5.7及Navicat
2.安装mysqlclient或者pymysql
这里简单说一下两者的区别
前者是由python和mysql共同开发的,是一个C的扩展模块,效率更快一些,但是安装编译较麻烦。
后者是一个纯python的驱动,可以直接用pip安装,但是效率略低一些。
博主前期用的是pymysql但现在已经换成mysqlclient,建议新手用pymysql如果是打算长期使用爬虫的还是用mysqlclient。根据自身需求决定吧。
安装pymysql直接 pip install pymysql
安装mysqlclient,也可以直接pip,但一般都会有编译错误,自己根据错误信息解决。
二、项目分析
1.数据抓取
本次项目是在第一章的项目上对数据进行了新的处理,对于数据的抓取并没有什么新的内容,略过。
2.创建数据表
如图创建五个数据字段,数据库操作不是本次内容,略过。
三、代码编写
因此代码实在第一章的项目上进行改进,所以只说下需要修改的部分。
1.编写piplines(将数据插入数据库)
import MySQLdbclass MySQLPipeline(object):def open_spider(self,spider):#再spider开始之前,调用一次#这里的表名,用户名,密码都存储在settings中,下面每个get()中有两个参数#第一个就是从settings中获取配置信息,第二个当获取失败时采用的信息。db_name=spider.settings.get("MYSQL_DB_NAME","qidian")host = spider.settings.get("MYSQL_HOST", "localhost")user = spider.settings.get("MYSQL_USER", "root")password = spider.settings.get("MYSQL_PASSWORD", "123456")#连接mysql数据库self.db_conn=MySQLdb.connect(db=db_name,host=host,user=user,password=password,charset="utf8")self.db_cursor=self.db_conn.cursor() #建立游标尺def process_item(self,item,spider):#处理每一个itemvaluse=(item["name"],item["author"],item["type"],item["form"])#确定sqlsql="insert into hot(name,author,type,form) value(%s,%s,%s,%s)"self.db_cursor.execute(sql,valuse)return itemdef close_spider(self,spider):#再spider结束时,调用一次self.db_conn.commit()#提交数据self.db_cursor.close() #删除游标尺self.db_conn.close() #断开链接
2.编写settings(编写配置信息)
在最下方加入数据库的配置信息
MYSQL_DB_DNNAME="qidian"
MYSQL_HOST="localhost"
MYSQL_user="root"
MYSQL_PASSWORD="123456"
开启piplines管道文件。
ITEM_PIPELINES = {'qidian_hot.pipelines.MySQLPipeline': 400,
}
3.修改start
from scrapy import cmdlinecmdline.execute("scrapy crawl hot" .split())
4.效果图
总结
此次文章在内容抓取上没有什么新的内容,只是增加了将数据插入数据库,主要是为日后的代码复用提供便利。
scrapy爬取起点中文网24小时热销榜单(将数据存到数据库)相关推荐
- scrapy爬取起点中文网24小时热销榜单
系列文章目录 第一章 scrapy爬取起点中文网24小时热销榜单. 文章目录 系列文章目录 前言 一.项目需求 二.项目分析 三.程序编写 1.编写item(数据存储) 2.编写spider(数据抓取 ...
- Scrapy 爬取起点中文网存储到 MySQL 数据库(自定义 middleware)
Scrapy 爬取起点中文网 1. 创建项目 2. 创建爬虫实例 3. 创建一个启动文件 main.py 4. 项目的总体树结构 5. settings.py 6. items.py 7. qidia ...
- scrapy 爬取起点中文网首页的本周强推作品的详情介绍
scrapy 爬取起点中文网首页的每周强推作品的详情介绍 从列表页跳转到详情页 保存的数据 封面图 小说名 作者 类型 简介 import scrapy# 起点首页 本周推荐 class Weektj ...
- Python爬取雪球7*24小时信息
目的 由于工作需要,尝试爬取雪球7*24小时信息. 需要的数据就是下图红框框起来的部分. 运行环境 操作系统:windows 10 浏览器:Chrome Python版本:3.8 使用的第三方库:re ...
- python爬虫之爬取起点中文网小说
python爬虫之爬取起点中文网小说 hello大家好,这篇文章带大家来制作一个python爬虫爬取阅文集团旗下产品起点中文网的程序,这篇文章的灵感来源于本人制作的一个项目:电脑助手 启帆助手 ⬆是项 ...
- Go爬取起点中文网 解决文字反爬
Go语言的爬虫库不如Python强大,却也五脏俱全. 今天我们分析如何爬取起点中文网数据,以及遇到反爬如何处理. 作品链接:http://www.365yg.com/i6678092837810078 ...
- Python爬虫之爬取起点中文网
python之爬取起点中文网 最近学了爬虫,想实战一下就选取了最近经常看小说的起点中文网来进行爬取 过程如下: 分析爬取信息: 爬取网址:https://www.qidian.com/rank?chn ...
- scrapy爬取起点小说网
闲来无事,在学习过程中练习用scrapy爬取起点小说名 工具:python3.6 操作系统:linux 浏览器:谷歌浏览器 创建项目 在黑屏终端创建一个项目:scrapy startproject Q ...
- python 爬虫抓取网页数据导出excel_Python爬虫|爬取起点中文网小说信息保存到Excel...
前言: 爬取起点中文网全部小说基本信息,小说名.作者.类别.连载\完结情况.简介,并将爬取的数据存储与EXCEL表中 环境:Python3.7 PyCharm Chrome浏览器 主要模块:xlwt ...
最新文章
- iQOO3Android11稳定版,vivo安卓11来了iQOO3 NEX3S尝鲜Androi11测试版!
- 02.CSS基础笔记及导入
- poj 2486 树形dp
- 字符串之字符判断以及字母的大小写转换
- matlab求负数分数幂问题
- 使用c语言函数的小结,C语言函数指针小结(1)
- 3 个主流 Java 微服务框架,各有特色
- 删除下拉框只找23火星软件_下拉框找20火星软件
- 项目经理价值的最终体现
- scrapy 报错401
- Android 应用换肤功能(白天黑夜主题切换)
- 如何防止QT程序未响应
- 【ESP32】VSCode+Arduino+Platformio 如何使用ESP32上的PSRAM
- dcdc模块降额设计_爱默生网络能源PCB设计规范
- 如何通过AppStore变态审核:看同行经验
- CLI 什么是 command-line interface
- 使用FME 批量OSGB转FBX(OBJ) (亲测)
- Linux入门学习(九)—— 怎么查看命令的帮助文档、怎么查看系统配置文件的帮助文档?
- STM32WB55_NUCLEO开发(2)----使用STM32CubeMX 生成的简单 BLE 应用程序连接手机APP
- 腾讯又一开源力作发布