Python3爬虫学习之MySQL数据库存储爬取的信息详解


Posted in Python onDecember 12, 2018

本文实例讲述了Python3爬虫学习之MySQL数据库存储爬取的信息。分享给大家供大家参考,具体如下:

数据库存储爬取的信息(MySQL)

爬取到的数据为了更好地进行分析利用,而之前将爬取得数据存放在txt文件中后期处理起来会比较麻烦,很不方便,如果数据量比较大的情况下,查找更加麻烦,所以我们通常会把爬取的数据存储到数据库中便于后期分析利用。

这里,数据库选择MySQL,采用pymysql 这个第三方库来处理python和mysql数据库的存取,python连接mysql数据库的配置信息

db_config ={
  'host': '127.0.0.1',
  'port': 3306,
  'user': 'root',
  'password': '',
  'db': 'pytest',
  'charset': 'utf8'
}

以爬取简书首页文章标题以及url为例,先分析抓取目标信息,

Python3爬虫学习之MySQL数据库存储爬取的信息详解

如上图,文章题目在a标签中,且url(href)只含有后半部分,所以在存储的时候,最好把它补全。

mysql:新建一个数据库pytest,建立一张名为titles的表,表中字段分别为id(int自增),title(varchar),url(varchar),如下:

Python3爬虫学习之MySQL数据库存储爬取的信息详解

进行数据库操作的思路为:获得数据库连接(connection)->获得游标(cursor)->执行sql语句(execute)->事物提交(commit)->关闭数据据库连接(close),具体代码实现如下:

# -*- coding:utf-8 -*-
from urllib import request
from bs4 import BeautifulSoup
import pymysql
# mysql连接信息(字典形式)
db_config ={
  'host': '127.0.0.1',
  'port': 3306,
  'user': 'root',
  'password': '',
  'db': 'pytest',
  'charset': 'utf8'
}
# 获得数据库连接
connection = pymysql.connect(**db_config)
# 数据库配置,获得连接(参数方式)
# connection = pymysql.connect(host='127.0.0.1',
#            port=3306,
#            user='root',
#            password='',
#            db='pytest',
#            charset='utf8')
url = r'http://www.jianshu.com/'
# 模拟浏览器头
headers = {
  'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'
}
page = request.Request(url, headers=headers)
page_info = request.urlopen(page).read().decode('utf-8')
soup = BeautifulSoup(page_info, 'html.parser')
urls = soup.find_all('a', 'title')
try:
  # 获得数据库游标
  with connection.cursor() as cursor:
    sql = 'insert into titles(title, url) values(%s, %s)'
    for u in urls:
      # 执行sql语句
      cursor.execute(sql, (u.string, r'http://www.jianshu.com'+u.attrs['href']))
  # 事务提交
  connection.commit()
finally:
  # 关闭数据库连接
  connection.close()

代码执行结果:

Python3爬虫学习之MySQL数据库存储爬取的信息详解

更多关于Python相关内容可查看本站专题:《Python Socket编程技巧总结》、《Python正则表达式用法总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python深入学习之闭包
Aug 31 Python
python使用BeautifulSoup分页网页中超链接的方法
Apr 04 Python
Python中使用不同编码读写txt文件详解
May 28 Python
Python编程中实现迭代器的一些技巧小结
Jun 21 Python
python实现随机调用一个浏览器打开网页
Apr 21 Python
python 读写文件,按行修改文件的方法
Jul 12 Python
python调用虹软2.0第三版的具体使用
Feb 22 Python
django框架使用views.py的函数对表进行增删改查内容操作详解【models.py中表的创建、views.py中函数的使用,基于对象的跨表查询】
Dec 12 Python
Python3 hashlib密码散列算法原理详解
Mar 30 Python
PyCharm中如何直接使用Anaconda已安装的库
May 28 Python
python ansible自动化运维工具执行流程
Jun 24 Python
Github 使用python对copilot做些简单使用测试
Apr 14 Python
Python3爬虫学习之将爬取的信息保存到本地的方法详解
Dec 12 #Python
对python制作自己的数据集实例讲解
Dec 12 #Python
Python3爬虫学习之爬虫利器Beautiful Soup用法分析
Dec 12 #Python
Python解决线性代数问题之矩阵的初等变换方法
Dec 12 #Python
对python数据切割归并算法的实例讲解
Dec 12 #Python
python实现文本界面网络聊天室
Dec 12 #Python
Python3爬虫学习之应对网站反爬虫机制的方法分析
Dec 12 #Python
You might like
ECMall支持SSL连接邮件服务器的配置方法详解
2014/05/19 PHP
PHP的PDO错误与错误处理
2019/01/27 PHP
关于Laravel参数验证的一些疑与惑
2019/11/19 PHP
JavaScript 对象的属性和方法4种不同的类型
2010/03/19 Javascript
腾讯的ip接口 方便获取当前用户的ip地理位置
2010/11/25 Javascript
很棒的学习jQuery的12个网站推荐
2011/04/28 Javascript
Jquery AJAX POST与GET之间的区别
2013/11/14 Javascript
Javascript 赋值机制详解
2014/11/23 Javascript
Jquery中find与each方法用法实例
2015/02/04 Javascript
javascript封装的sqlite操作类实例
2015/07/17 Javascript
js流动式效果显示当前系统时间
2016/05/16 Javascript
用jQuery向div中添加Html文本内容的简单实现
2016/07/13 Javascript
jQuery仿京东商城楼梯式导航定位菜单
2016/07/25 Javascript
微信小程序-图片、录音、音频播放、音乐播放、视频、文件代码实例
2016/11/22 Javascript
简单易懂的天气插件(代码分享)
2017/02/04 Javascript
详解vue + vuex + directives实现权限按钮的思路
2017/10/24 Javascript
JavaScript函数节流和函数去抖知识点学习
2018/07/31 Javascript
JS代码实现页面切换效果
2021/01/10 Javascript
python的类变量和成员变量用法实例教程
2014/08/25 Python
scrapy爬虫完整实例
2018/01/25 Python
python实现数据分析与建模
2019/07/11 Python
Python学习笔记之错误和异常及访问错误消息详解
2019/08/08 Python
用Python绘制漫步图实例讲解
2020/02/26 Python
Python reversed函数及使用方法解析
2020/03/17 Python
洲际酒店集团英国官网:IHG英国
2019/07/10 全球购物
医生实习工作总结的自我评价
2013/09/27 职场文书
国贸专业个人求职信分享
2013/12/04 职场文书
银行职员个人的工作自我评价
2014/02/15 职场文书
护士长2014年终工作总结
2014/11/11 职场文书
2015年公司工作总结
2015/04/25 职场文书
农民工工资支付承诺书
2015/05/04 职场文书
小学中队活动总结
2015/05/11 职场文书
2015年度公共机构节能工作总结
2015/05/26 职场文书
幼儿园大班开学寄语(2015秋季)
2015/05/27 职场文书
悬崖上的金鱼姬观后感
2015/06/15 职场文书
创业计划书之网络外卖
2019/10/31 职场文书