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 04 Python
简单了解什么是神经网络
Dec 23 Python
使用Python处理Excel表格的简单方法
Jun 07 Python
Django实现表单验证
Sep 08 Python
解决python 自动安装缺少模块的问题
Oct 22 Python
Python替换月份为英文缩写的实现方法
Jul 15 Python
python设计tcp数据包协议类的例子
Jul 23 Python
Python之time模块的时间戳,时间字符串格式化与转换方法(13位时间戳)
Aug 12 Python
解决python明明pip安装成功却找不到包的问题
Aug 28 Python
python-xpath获取html文档的部分内容
Mar 06 Python
详解Django中异步任务之django-celery
Nov 05 Python
Python list去重且保持原顺序不变的方法
Apr 03 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
PHP4在WinXP下IIS和Apache2服务器上的安装实例
2006/10/09 PHP
一步一步学习PHP(1) php开发环境配置
2010/02/15 PHP
php下过滤html代码的函数 提高程序安全性
2010/03/02 PHP
php数据入库前清理 注意php intval与mysql的int取值范围不同
2010/12/12 PHP
PHP使用DOMDocument类生成HTML实例(包含常见标签元素)
2014/06/25 PHP
PHP 只允许指定IP访问(允许*号通配符过滤IP)
2014/07/08 PHP
php+ajax实现仿百度查询下拉内容功能示例
2017/10/20 PHP
Laravel Eloquent分表方法并使用模型关联的实现
2019/11/25 PHP
javascript 面向对象的JavaScript类
2010/05/04 Javascript
jQuery实现原理的模拟代码 -6 代码下载
2010/08/16 Javascript
JS鼠标滑过图片时切换图片实现思路
2013/09/12 Javascript
javascript使用shift+click实现选择和反选checkbox的方法
2015/05/04 Javascript
JS常见疑难点分析之match,charAt,charCodeAt,map,search用法分析
2016/12/25 Javascript
js数字计算 误差问题的快速解决方法
2017/02/28 Javascript
Node.js中的require.resolve方法使用简介
2017/04/23 Javascript
详解js静态检查工具eslint配置文件
2018/11/23 Javascript
详解keep-alive + vuex 让缓存的页面灵活起来
2019/04/19 Javascript
微信小程序修改数组长度的问题的解决
2019/12/17 Javascript
Vue3新特性之在Composition API中使用CSS Modules
2020/07/13 Javascript
[05:01]3.19DOTA2发布会 我们都是刀塔人
2014/03/25 DOTA
Python实现CET查分的方法
2015/03/10 Python
详解Python操作RabbitMQ服务器消息队列的远程结果返回
2016/06/30 Python
Python读取图片属性信息的实现方法
2016/09/11 Python
Python读取YUV文件,并显示的方法
2018/12/04 Python
详解在Python中使用Torchmoji将文本转换为表情符号
2020/07/27 Python
Python用户自定义异常的实现
2020/12/25 Python
6号汽车旅馆预订:Motel 6
2018/02/11 全球购物
毕业生找工作的自我评价
2013/10/18 职场文书
总经理职责范文
2013/11/08 职场文书
汽车专业人才自我鉴定范文
2013/12/29 职场文书
致400米运动员广播稿
2014/02/07 职场文书
小学英语教师先进事迹
2014/05/28 职场文书
优秀党员学习焦裕禄精神思想汇报范文
2014/09/10 职场文书
2015年学习部工作总结范文
2015/03/31 职场文书
学生乘坐校车安全责任书
2015/05/11 职场文书
英文投诉信格式
2015/07/03 职场文书