首页 » 软件开发 » 大数据挖掘—(八):scrapy爬取数据保存到MySql数据库(数据库数据保存爬虫数据挖掘)

大数据挖掘—(八):scrapy爬取数据保存到MySql数据库(数据库数据保存爬虫数据挖掘)

少女玫瑰心 2024-07-25 00:25:31 0

扫一扫用手机浏览

文章目录 [+]

通过往期的文章分享,我们了解了如何爬取想要的数据到Items中,也了解了如何操作MySQL数据库,那么我们继续完善我们的爬虫代码,把爬取的items,保存到MySQL数据库中。

scrapy构架

为了方便操作,我们自己新建一个mysqlpipelines文件夹,编写自己的pipelines.py文件,来运行保存items,在此文件夹下新建sql.py来编写我们保存数据库的sql语句。

大数据挖掘—(八):scrapy爬取数据保存到MySql数据库(数据库数据保存爬虫数据挖掘) 软件开发
(图片来自网络侵删)
编写sql语句

打开sql.py 编写代码,首先要连接数据库

import pymysql.cursors# 连接数据库connect = pymysql.Connect( host=MYSQL_HOSTS,port=MYSQL_PORT,user=MYSQL_USER,passwd=MYSQL_PASSWORD, db=MYSQL_DB,charset='utf8')cursor = connect.cursor()# 获取游标print('连接数据库OK')

数据库连接ok后,我们打印一下,以便测试

新建一个类,编写sql语句

class my_sql: @classmethod #插入数据 def insert_data(cls,novelname,author,category,nameid,status,num,url): ................................................................................... @classmethod #判断数据是否存在 def select_name(cls,novelname): ................................................................................ @classmethod # 更新数据 def update_data(cls,author,category,nameid,status,num,url,novelname): ................................................................................ @classmethod # close sql def close_sql(cls): cursor.close() connect.close() print('数据库断开连接OK')

类中我们定义了插入,更新,查询的基本sql语句,最后定义一个关闭数据库的操作,中间操作数据库的详细代码请参考往期文件。

编写pipelines

from myproject.mysqlpipelines.sql import my_sqlfrom myproject.items import PowersItem#插入新建的sql与item

定义pipelines

class Powerspipeline(object): def process_item(self,item,spider): if isinstance(item,PowersItem):#判断item是否存在 novelname=item['novelname'] author = item['author'] category = item['category'] nameid = item['nameid'] status = item['status'] num = item['num'] url = item['novelurl']#以上获取爬取的数据 ret=my_sql.select_name(novelname)#判断数据是否存在在数据库中 if ret[0]==1:#已经存在 print('已经存在,等待更新')#若数据库中有以前的数据,更新数据库 my_sql.update_data(author,category,nameid,status,num,url,novelname) pass else:#若数据库中没有数据,保存item print('开始保存') my_sql.insert_data(novelname,author,category,nameid,status,num,url) else : print('no find items') return item

通过以上的操作我们爬虫的所有代码就完成了,运行代码就可以从数据库中,看到保存的数据

由于我调试过一次,已经有的数据,再次运行程序时,就会更新数据库。

保存的数据

下期预告:

关于爬虫的内容还有很多,下期我们分享一下爬虫解析网页的一个利器,正则表达式

相关文章

语言中的借用,文化交融的桥梁

自古以来,人类社会的交流与发展离不开语言的传播。在漫长的历史长河中,各民族、各地区之间的文化相互碰撞、交融,产生了许多独特的语言现...

软件开发 2025-01-01 阅读1 评论0

机顶盒协议,守护数字生活的新卫士

随着科技的飞速发展,数字家庭逐渐走进千家万户。在这个时代,机顶盒成为了连接我们与丰富多彩的数字世界的重要桥梁。而机顶盒协议,作为保...

软件开发 2025-01-01 阅读1 评论0

语言基础在现代社会的重要性及方法步骤

语言是人类沟通的桥梁,是社会发展的基础。语言基础作为语言学习的基石,对于个人、社会乃至国家的发展具有重要意义。本文将从语言基础在现...

软件开发 2025-01-01 阅读2 评论0

粤语电影,传承文化,点亮时代之光

粤语电影,作为中国电影产业的一朵奇葩,以其独特的地域特色、丰富的文化内涵和鲜明的艺术风格,赢得了广大观众的喜爱。本文将从粤语电影的...

软件开发 2025-01-01 阅读3 评论0

苹果游戏语言,塑造未来娱乐体验的基石

随着科技的飞速发展,游戏产业逐渐成为全球娱乐市场的重要支柱。在我国,游戏产业更是蓬勃发展,吸引了无数玩家和投资者的目光。而在这其中...

软件开发 2025-01-01 阅读1 评论0