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 相关文章推荐
windows下安装python paramiko模块的代码
Feb 10 Python
python为tornado添加recaptcha验证码功能
Feb 26 Python
对Python 网络设备巡检脚本的实例讲解
Apr 22 Python
Python列表推导式与生成器用法分析
Aug 02 Python
Python图像处理之图像的缩放、旋转与翻转实现方法示例
Jan 04 Python
Django项目使用CircleCI的方法示例
Jul 14 Python
python中bytes和str类型的区别
Oct 21 Python
python字符串的拼接方法总结
Nov 18 Python
如何修复使用 Python ORM 工具 SQLAlchemy 时的常见陷阱
Nov 19 Python
appium+python自动化配置(adk、jdk、node.js)
Nov 17 Python
Flask-SocketIO服务端安装及使用代码示例
Nov 26 Python
Python+Tkinter制作专属图形化界面
Apr 01 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
PHP 开源AJAX框架14种
2009/08/24 PHP
php的GD库imagettftext函数解决中文乱码问题
2015/01/24 PHP
Laravel中encrypt和decrypt的实现方法
2017/09/24 PHP
javascript日期转换 时间戳转日期格式
2011/11/05 Javascript
JS截取字符串常用方法详细整理
2013/10/28 Javascript
javascript实现简单的鼠标拖动效果实例
2015/04/10 Javascript
jquery操作checkbox火狐下第二次无法勾选的解决方法
2016/10/10 Javascript
微信小程序 页面跳转和数据传递实例详解
2017/01/19 Javascript
bootstrap 通过加减按钮实现输入框组功能
2017/11/15 Javascript
浅谈Vue网络请求之interceptors实际应用
2018/02/28 Javascript
vue中实现图片和文件上传的示例代码
2018/03/16 Javascript
浅析java线程中断的办法
2018/07/29 Javascript
jQuery实现轮播图效果
2019/11/26 jQuery
JS实现动态无缝轮播
2020/01/11 Javascript
基于js实现逐步显示文字输出代码实例
2020/04/02 Javascript
jquery.validate自定义验证用法实例分析【成功提示与择要提示】
2020/06/06 jQuery
简单了解three.js 着色器材质
2020/08/03 Javascript
jQuery实现查看图片功能
2020/12/01 jQuery
Python之ReportLab绘制条形码和二维码的实例
2018/01/15 Python
python入门前的第一课 python怎样入门
2018/03/06 Python
numpy中实现ndarray数组返回符合特定条件的索引方法
2018/04/17 Python
python抓取网站的图片并下载到本地的方法
2018/05/22 Python
python3.7将代码打包成exe程序并添加图标的方法
2019/10/11 Python
Django 如何使用日期时间选择器规范用户的时间输入示例代码详解
2020/05/22 Python
小白教你PyCharm从下载到安装再到科学使用PyCharm2020最新激活码
2020/09/25 Python
Python 制作查询商品历史价格的小工具
2020/10/20 Python
Bergfreunde丹麦:登山装备网上零售商
2017/02/26 全球购物
Feelunique澳大利亚:欧洲的化妆品零售电商
2019/12/18 全球购物
《小熊住山洞》教学反思
2014/02/21 职场文书
关于青春的演讲稿
2014/05/05 职场文书
艾滋病宣传活动总结
2014/05/08 职场文书
法院四风对照检查材料思想汇报
2014/10/06 职场文书
党员年终个人总结
2015/02/14 职场文书
2015年保育员个人工作总结
2015/05/13 职场文书
2015年英语教学工作总结
2015/05/25 职场文书
详解如何使用Node.js实现热重载页面
2021/05/06 Javascript