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 splitlines使用技巧
Sep 06 Python
Python 迭代器与生成器实例详解
May 18 Python
Python随机生成均匀分布在单位圆内的点代码示例
Nov 13 Python
python3+PyQt5实现自定义流体混合窗口部件
Apr 24 Python
python实现括号匹配的思路详解
Aug 23 Python
Python面向对象之静态属性、类方法与静态方法分析
Aug 24 Python
selenium+python自动化测试之页面元素定位
Jan 23 Python
python实现图片压缩代码实例
Aug 12 Python
在python image 中安装中文字体的实现方法
Aug 22 Python
原生python实现knn分类算法
Oct 24 Python
通过实例简单了解python yield使用方法
Aug 06 Python
python实现马丁策略回测3000只股票的实例代码
Jan 22 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
合作指挥官:孟斯克
2020/03/16 星际争霸
PHP编码规范-php coding standard
2007/03/16 PHP
PhpMyAdmin中无法导入sql文件的解决办法
2010/01/08 PHP
php开启安全模式后禁用的函数集合
2011/06/26 PHP
PHP实现通过正则表达式替换回调的内容标签
2015/06/15 PHP
PHP实现的json类实例
2015/07/28 PHP
PHP加密技术的简单实现
2016/09/04 PHP
JavaScript 基于原型的对象(创建、调用)
2009/10/16 Javascript
js里的prototype使用示例
2010/11/19 Javascript
js列举css中所有图标的实现代码
2011/07/04 Javascript
基于jquery和svg实现超炫酷的动画特效
2014/12/09 Javascript
jquery调取json数据实现省市级联的方法
2015/01/29 Javascript
jQuery给动态添加的元素绑定事件的方法
2015/03/09 Javascript
Jsonp post 跨域方案
2015/07/06 Javascript
javascript实现不同颜色Tab标签切换效果
2016/04/27 Javascript
jQuery插件简单学习实例教程
2016/07/01 Javascript
原生JS控制多个滚动条同步跟随滚动效果
2017/12/22 Javascript
js嵌套的数组扁平化:将多维数组变成一维数组以及push()与concat()区别的讲解
2019/01/19 Javascript
openlayers实现地图弹窗
2020/09/25 Javascript
[55:25]2018DOTA2亚洲邀请赛3月29日 小组赛A组 VG VS OG
2018/03/30 DOTA
新手如何快速入门Python(菜鸟必看篇)
2017/06/10 Python
tensorflow入门之训练简单的神经网络方法
2018/02/26 Python
centos7中安装python3.6.4的教程
2019/12/11 Python
python-docx文件定位读取过程(尝试替换)
2020/02/13 Python
Python HTMLTestRunner如何下载生成报告
2020/09/04 Python
Python3 + Appium + 安卓模拟器实现APP自动化测试并生成测试报告
2021/01/27 Python
微信小程序canvas实现水平、垂直居中效果
2020/02/05 HTML / CSS
金士达面试非笔试
2012/03/14 面试题
工业自动化专业毕业生推荐信
2013/11/18 职场文书
工程技术员岗位职责
2014/03/02 职场文书
超市商业计划书
2014/05/04 职场文书
国家税务局干部作风整顿整改措施
2014/09/18 职场文书
2014年政协委员工作总结
2014/12/01 职场文书
首席执行官观后感
2015/06/03 职场文书
golang 语言中错误处理机制
2021/08/30 Golang
Python可视化学习之matplotlib内置单颜色
2022/02/24 Python