这是python3实战入门系列的第三篇文章,要学习这一篇需要了解前两篇,要不学起来比较费劲
《python3实战入门python爬虫篇001---网页爬虫,图片爬虫,文章爬虫,新闻网站爬虫》
《python3操作数据库002 借助pycharm快速连接并操作mysql数据库》
下面来正式开始把我们第一节爬取到的新闻数据保存到mysql数据中
一,首页我们需要连接数据库
通过定义一个MySQLCommand类来配置数据库连接参数,并定义一个connectMysql方法连接数据库
# -*- coding: utf-8 -*-# 作者微信:2501902696import pymysql# 用来操作数据库的类class MySQLCommand(object): # 类的初始化 def __init__(self): self.host = 'localhost' self.port = 3306 # 端口号 self.user = 'root' # 用户名 self.password = "" # 密码 self.db = "home" # 库 self.table = "home_list" # 表 # 链接数据库 def connectMysql(self): try: self.conn = pymysql.connect(host=self.host, port=self.port, user=self.user, passwd=self.password, db=self.db, charset='utf8') self.cursor = self.conn.cursor() except: print('connect mysql error.')
二,连接完数据库后我们需要插入数据了
插入数据之前我们有两个问题
- 1,重复的数据如何去重
- 2,新数据的主键id应该从哪里开始
- 针对上面的两个问题我贴出一部分代码来看解决思路
# 插入数据,插入之前先查询是否存在,如果存在就不再插入 def insertData(self, my_dict): table = "home_list" # 要操作的表格 # 注意,这里查询的sql语句url=' %s '中%s的前后要有空格 sqlExit = "SELECT url FROM home_list WHERE url = ' %s '" % (my_dict['url']) res = self.cursor.execute(sqlExit) if res: # res为查询到的数据条数如果大于0就代表数据已经存在 print("数据已存在