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修改操作系统时间的方法
May 18 Python
Python中实现三目运算的方法
Jun 21 Python
ubuntu安装mysql pycharm sublime
Feb 20 Python
VSCode下好用的Python插件及配置
Apr 06 Python
python numpy 常用随机数的产生方法的实现
Aug 21 Python
解决Pycharm 导入其他文件夹源码的2种方法
Feb 12 Python
记一次pyinstaller打包pygame项目为exe的过程(带图片)
Mar 02 Python
Pytorch 使用opnecv读入图像由HWC转为BCHW格式方式
Jun 02 Python
python 发送get请求接口详解
Nov 17 Python
Python创建简单的神经网络实例讲解
Jan 04 Python
基于flask实现五子棋小游戏
May 25 Python
Python  序列化反序列化和异常处理的问题小结
Dec 24 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使用unset()删除数组中某个单元(键)的方法
2015/02/17 PHP
PHP实现合并两个排序链表的方法
2018/01/19 PHP
Jquery公告滚动+AJAX后台得到数据
2011/04/14 Javascript
jQuery列表拖动排列具体实现
2013/11/04 Javascript
JavaScript中的document.referrer在各种浏览器测试结果
2014/07/18 Javascript
JQuery中DOM加载与事件执行实例分析
2015/06/13 Javascript
详解iframe与frame的区别
2016/01/13 Javascript
Java  Spring 事务回滚详解
2016/10/17 Javascript
js 判断登录界面的账号密码是否为空
2017/02/08 Javascript
javascript完美实现给定日期返回上月日期的方法
2017/06/15 Javascript
浅谈webpack SplitChunksPlugin实用指南
2018/09/17 Javascript
vue elementui form表单验证的实现
2018/11/11 Javascript
js实现多个倒计时并行 js拼团倒计时
2019/02/25 Javascript
angular 表单验证器验证的同时限制输入的实现
2019/04/11 Javascript
微信小程序云开发之数据库操作
2019/05/18 Javascript
Javascript异步执行不按顺序解决方案
2020/04/30 Javascript
[03:09]2014DOTA2国际邀请赛 赛场上的美丽风景线 中国Coser也爱DOTA2
2014/07/20 DOTA
python应用程序在windows下不出现cmd窗口的办法
2014/05/29 Python
如何使用python进行pdf文件分割
2019/11/11 Python
Python CSV文件模块的使用案例分析
2019/12/21 Python
Python hashlib模块的使用示例
2020/10/09 Python
Selenium执行完毕未关闭chromedriver/geckodriver进程的解决办法(java版+python版)
2020/12/07 Python
美体小铺美国官网:The Body Shop美国
2017/11/10 全球购物
四年级数学教学反思
2014/02/02 职场文书
蜜蜂引路教学反思
2014/02/04 职场文书
护士毕业实习感言
2014/03/05 职场文书
工伤赔偿协议书范本
2014/04/15 职场文书
小学兴趣小组活动总结
2014/07/07 职场文书
乡镇安全生产目标责任书
2014/07/23 职场文书
关于读书的演讲稿1000字
2014/08/27 职场文书
财务管理专业自荐书
2014/09/02 职场文书
2015年国培研修感言
2015/08/01 职场文书
团队拓展训练感想
2015/08/07 职场文书
2016优秀护士先进个人事迹材料
2016/02/25 职场文书
小学语文教师竞聘演讲稿范文
2019/08/09 职场文书
导游词之云南丽江古城
2019/09/17 职场文书