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中的函数用法入门教程
Sep 02 Python
Python字符串中查找子串小技巧
Apr 10 Python
Python简单调用MySQL存储过程并获得返回值的方法
Jul 20 Python
举例讲解Django中数据模型访问外键值的方法
Jul 21 Python
使用PyV8在Python爬虫中执行js代码
Feb 16 Python
机器学习python实战之决策树
Nov 01 Python
python学生信息管理系统
Mar 13 Python
python得到qq句柄,并显示在前台的方法
Oct 14 Python
python的schedule定时任务模块二次封装方法
Feb 19 Python
Python 自动登录淘宝并保存登录信息的方法
Sep 04 Python
python+OpenCV实现车牌号码识别
Nov 08 Python
教你使用Sublime text3搭建Python开发环境及常用插件安装另分享Sublime text3最新激活注册码
Nov 12 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
利用static实现表格的颜色隔行显示的代码
2007/09/02 PHP
php如何调用webservice应用介绍
2012/11/24 PHP
详解WordPress开发中wp_title()函数的用法
2016/01/07 PHP
微博@符号的用户名提示效果。(想@到谁?)
2010/11/05 Javascript
JavaScript XML和string相互转化实现代码
2011/07/04 Javascript
javascript的offset、client、scroll使用方法详解
2012/12/25 Javascript
JavaScript淡入淡出渐变简单实例
2015/08/06 Javascript
js+canvas简单绘制圆圈的方法
2016/01/28 Javascript
基于JavaScript判断浏览器到底是关闭还是刷新(超准确)
2016/02/01 Javascript
Bootstrap打造一个左侧折叠菜单的系统模板(二)
2016/05/17 Javascript
JavaScript ES5标准中新增的Array方法
2016/06/28 Javascript
JavaScript比较同一天的时间大小实例代码
2018/02/09 Javascript
深入理解Vue父子组件生命周期执行顺序及钩子函数
2018/08/12 Javascript
LayUI表格批量删除方法
2018/08/15 Javascript
解决angular双向绑定无效果,ng-model不能正常显示的问题
2018/10/02 Javascript
JS html事件冒泡和事件捕获操作示例
2019/05/01 Javascript
JS实现水平遍历和嵌套递归操作示例
2019/08/15 Javascript
Java Varargs 可变参数用法详解
2020/01/28 Javascript
toString.call()通用的判断数据类型方法示例
2020/08/28 Javascript
[02:55]2018DOTA2国际邀请赛勇士令状不朽珍藏Ⅲ饰品一览
2018/08/01 DOTA
python写的ARP攻击代码实例
2014/06/04 Python
pytorch多GPU并行运算的实现
2019/09/27 Python
Python requests获取网页常用方法解析
2020/02/20 Python
Python中使用threading.Event协调线程的运行详解
2020/05/02 Python
Python优秀开源项目Rich源码解析的流程分析
2020/07/06 Python
使用html5 canvas创建太空游戏的示例
2014/05/08 HTML / CSS
旅游专业职业生涯规划范文
2014/01/13 职场文书
自主实习接收函
2014/01/13 职场文书
消防器材管理制度
2014/01/28 职场文书
创建绿色社区汇报材料
2014/08/22 职场文书
纪念九一八事变演讲稿:勿忘国耻
2014/09/14 职场文书
2015年幼儿园大班工作总结
2015/04/25 职场文书
党员读书活动心得体会
2016/01/14 职场文书
历史名人教你十五个读书方法,赶快Get起来!
2019/07/18 职场文书
2019大学生暑期实习心得总结
2019/08/21 职场文书
MySQL示例讲解数据库约束以及表的设计
2022/06/16 MySQL