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脚本自动生成需要文件实例代码
Feb 04 Python
Windows下安装python MySQLdb遇到的问题及解决方法
Mar 16 Python
基于Python的文件类型和字符串详解
Dec 21 Python
对python append 与浅拷贝的实例讲解
May 04 Python
完美解决在oj中Python的循环输入问题
Jun 25 Python
python获取微信小程序手机号并绑定遇到的坑
Nov 19 Python
关于Python作用域自学总结
Jun 10 Python
Python流程控制 while循环实现解析
Sep 02 Python
Tensorflow tf.dynamic_partition矩阵拆分示例(Python3)
Feb 07 Python
python模拟点击网页按钮实现方法
Feb 25 Python
python3注册全局热键的实现
Mar 22 Python
Python 如何展开嵌套的序列
Aug 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时间不正确的解决方法
2008/04/09 PHP
ThinkPHP让分页保持搜索状态的方法
2014/07/02 PHP
yii操作session实例简介
2014/07/31 PHP
19个Android常用工具类汇总
2014/12/30 PHP
AES加解密在php接口请求过程中的应用示例
2016/10/26 PHP
PHP异步进程助手async-helper
2018/02/05 PHP
PHP 面向对象程序设计之类属性与类常量实现方法分析
2020/04/13 PHP
jQuery阻止事件冒泡具体实现
2013/10/11 Javascript
推荐一款jQuery插件模板
2015/01/09 Javascript
Javascript 是你的高阶函数(高级应用)
2015/06/15 Javascript
jquery简单实现网页层的展开与收缩效果
2015/08/07 Javascript
jquery获取css的color值返回RGB的方法
2015/12/18 Javascript
JavaScript驾驭网页-DOM
2016/03/24 Javascript
Bootstrap中glyphicons-halflings-regular.woff字体报404错notfound的解决方法
2017/01/19 Javascript
Vue框架TypeScript装饰器使用指南小结
2019/02/18 Javascript
ES6知识点整理之函数数组参数的默认值及其解构应用示例
2019/04/17 Javascript
Js通过AES加密后PHP用Openssl解密的方法
2019/07/12 Javascript
解决vue v-for src 图片路径问题 404
2019/11/12 Javascript
[51:20]完美世界DOTA2联赛PWL S2 Magma vs PXG 第一场 11.28
2020/12/01 DOTA
python操作mysql中文显示乱码的解决方法
2014/10/11 Python
python打开文件并获取文件相关属性的方法
2015/04/23 Python
在Django的视图(View)外使用Session的方法
2015/07/23 Python
Python文件处理
2016/02/29 Python
Python常见字符串操作函数小结【split()、join()、strip()】
2018/02/02 Python
Python可视化mhd格式和raw格式的医学图像并保存的方法
2019/01/24 Python
使用 Python 玩转 GitHub 的贡献板(推荐)
2019/04/04 Python
Python使用LDAP做用户认证的方法
2019/06/20 Python
tensorflow 保存模型和取出中间权重例子
2020/01/24 Python
澳大利亚在线消费电子产品商店:TobyDeals
2020/01/05 全球购物
入党转预备思想汇报
2014/01/07 职场文书
健康家庭事迹材料
2014/05/02 职场文书
关于环保的演讲稿
2014/05/10 职场文书
先进单位事迹材料
2014/12/25 职场文书
SQL Server中交叉联接的用法详解
2021/04/22 SQL Server
MySQL的安装与配置详细教程
2021/06/26 MySQL
Win11跳过联网界面创建本地管理账户的3种方法
2022/04/20 数码科技