Python爬取数据并写入MySQL数据库的实例


Posted in Python onJune 21, 2018

首先我们来爬取 http://html-color-codes.info/color-names/ 的一些数据。

Python爬取数据并写入MySQL数据库的实例

按 F12 或 ctrl+u 审查元素,结果如下:

Python爬取数据并写入MySQL数据库的实例

结构很清晰简单,我们就是要爬 tr 标签里面的 style 和 tr 下几个并列的 td 标签,下面是爬取的代码:

#!/usr/bin/env python
# coding=utf-8
import requests
from bs4 import BeautifulSoup
import MySQLdb
print('连接到mysql服务器...')
db = MySQLdb.connect("localhost","hp","Hp12345.","TESTDB")
print('连接上了!')
cursor = db.cursor()
cursor.execute("DROP TABLE IF EXISTS COLOR")
sql = """CREATE TABLE COLOR (
  Color CHAR(20) NOT NULL,
  Value CHAR(10),
  Style CHAR(50) )"""
cursor.execute(sql)
hdrs = {'User-Agent':'Mozilla/5.0 (X11; Fedora; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko)'}
url = "http://html-color-codes.info/color-names/"
r = requests.get(url, headers = hdrs)
soup = BeautifulSoup(r.content.decode('gbk', 'ignore'), 'lxml')
trs = soup.find_all('tr') # 获取全部tr标签成为一个列表
for tr in trs:    # 遍历列表里所有的tr标签单项
 style = tr.get('style') # 获取每个tr标签里的属性style
 tds = tr.find_all('td') # 将每个tr标签下的td标签获取为列表
 td = [x for x in tds] # 获取的列表
 name = td[1].text.strip()  # 直接从列表里取值
 hex = td[2].text.strip()
 # print u'颜色: ' + name + u'颜色值: '+ hex + u'背景色样式: ' + style
 # print 'color: ' + name + '\tvalue: '+ hex + '\tstyle: ' + style
 insert_color = ("INSERT INTO COLOR(Color,Value,Style)" "VALUES(%s,%s,%s)")
 data_color = (name, hex, style)
 cursor.execute(insert_color, data_color)
 db.commit()
 # print '******完成此条插入!' 
print '爬取数据并插入mysql数据库完成...'

运行结果:

Python爬取数据并写入MySQL数据库的实例

$ mysql -u hp -p
Enter password: 
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 28
Server version: 5.7.17 MySQL Community Server (GPL)
Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> use TESTDB
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> select * from COLOR;
+----------------------+--------+----------------------------------------+
| Color    | Value | Style         |
+----------------------+--------+----------------------------------------+
| IndianRed   | CD5C5C | background-color:indianred;   |
| LightCoral   | F08080 | background-color:lightcoral;   |
| Salmon    | FA8072 | background-color:salmon;    |
| DarkSalmon   | E9967A | background-color:darksalmon;   |
| LightSalmon   | FFA07A | background-color:lightsalmon;   |
| Crimson    | DC143C | background-color:crimson;    |
| Red     | FF0000 | background-color:red;     |
| FireBrick   | B22222 | background-color:fireBrick;   |
| DarkRed    | 8B0000 | background-color:darkred;    |
| Pink     | FFC0CB | background-color:pink;     |
| LightPink   | FFB6C1 | background-color:lightpink;   |
| HotPink    | FF69B4 | background-color:hotpink;    |
| DeepPink    | FF1493 | background-color:deeppink;    |
...
| AntiqueWhite   | FAEBD7 | background-color:antiquewhite;   |
| Linen    | FAF0E6 | background-color:linen;    |
| LavenderBlush  | FFF0F5 | background-color:lavenderblush;  |
| MistyRose   | FFE4E1 | background-color:mistyrose;   |
| Gainsboro   | DCDCDC | background-color:gainsboro;   |
| LightGrey   | D3D3D3 | background-color:lightgrey;   |
| Silver    | C0C0C0 | background-color:silver;    |
| DarkGray    | A9A9A9 | background-color:darkgray;    |
| Gray     | 808080 | background-color:gray;     |
| DimGray    | 696969 | background-color:dimgray;    |
| LightSlateGray  | 778899 | background-color:lightslategray;  |
| SlateGray   | 708090 | background-color:slategray;   |
| DarkSlateGray  | 2F4F4F | background-color:darkslategray;  |
| Black    | 000000 | background-color:black;    |
+----------------------+--------+----------------------------------------+
143 rows in set (0.00 sec)

以上这篇Python爬取数据并写入MySQL数据库的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中使用摄像头实现简单的延时摄影技术
Mar 27 Python
Python中map和列表推导效率比较实例分析
Jun 17 Python
Python文本处理之按行处理大文件的方法
Apr 09 Python
python使用matplotlib模块绘制多条折线图、散点图
Apr 26 Python
Python对切片命名的实现方法
Oct 16 Python
Python实现的矩阵转置与矩阵相乘运算示例
Mar 26 Python
Python画图高斯分布的示例
Jul 10 Python
pandas DataFrame的修改方法(值、列、索引)
Aug 02 Python
python 实现字符串下标的输出功能
Feb 13 Python
Python龙贝格法求积分实例
Feb 29 Python
Python 基于jwt实现认证机制流程解析
Jun 22 Python
Python scrapy爬取小说代码案例详解
Jul 09 Python
python实现黑客字幕雨效果
Jun 21 #Python
python实现内存监控系统
Mar 07 #Python
Python之csv文件从MySQL数据库导入导出的方法
Jun 21 #Python
python 从csv读数据到mysql的实例
Jun 21 #Python
OPENCV去除小连通区域,去除孔洞的实例讲解
Jun 21 #Python
python读取文本绘制动态速度曲线
Jun 21 #Python
python实现可视化动态CPU性能监控
Jun 21 #Python
You might like
用php写的serv-u的web申请账号的程序
2006/10/09 PHP
php $_ENV为空的原因分析
2009/06/01 PHP
PHP与C#分别格式化文件大小的代码
2011/05/14 PHP
ubuntu下配置nginx+php+mysql详解
2015/09/10 PHP
THINKPHP截取中文字符串函数实例代码
2017/03/20 PHP
PHP实现活动人选抽奖功能
2017/04/19 PHP
JMenuTab简单使用说明
2008/03/13 Javascript
jquery在Chrome下获取图片的长宽问题解决
2013/03/20 Javascript
关于Jquery操作Cookie取值错误的解决方法
2013/08/26 Javascript
jquery左右滚动焦点图banner图片鼠标经过显示上下页按钮
2013/10/11 Javascript
JavaScript中按位“异或”运算符使用介绍
2014/03/14 Javascript
jquery选择器使用详解
2014/04/08 Javascript
js实现按钮控制图片360度翻转特效的方法
2015/02/17 Javascript
JavaScript获取对象在页面中位置坐标的方法
2016/02/03 Javascript
node模块机制与异步处理详解
2016/03/13 Javascript
AngularJS入门教程之 XMLHttpRequest实例讲解
2016/07/27 Javascript
jQuery弹出层插件popShow用法示例
2017/01/23 Javascript
Angular 4依赖注入学习教程之简介(一)
2017/06/04 Javascript
用最简单的方法判断JavaScript中this的指向(推荐)
2017/09/04 Javascript
Bootstrap 3多级下拉菜单实例
2017/11/23 Javascript
详解Vue 多级组件透传新方法provide/inject
2018/05/09 Javascript
用js编写留言板
2020/03/17 Javascript
有关vue 开发钉钉 H5 微应用 dd.ready() 不执行问题及快速解决方案
2020/05/09 Javascript
vue 实现把路由单独分离出来
2020/08/13 Javascript
python处理文本文件并生成指定格式的文件
2014/07/31 Python
python对html代码进行escape编码的方法
2015/05/04 Python
python rsa 加密解密
2017/03/20 Python
对Python3中的input函数详解
2018/04/22 Python
分析运行中的 Python 进程详细解析
2019/06/22 Python
Django设置Postgresql的操作
2020/05/14 Python
django ObjectDoesNotExist 和 DoesNotExist的用法
2020/07/09 Python
Python爬虫中Selenium实现文件上传
2020/12/04 Python
在校大学生个人的自我评价
2014/02/13 职场文书
六五普法心得体会2016
2016/01/21 职场文书
Python OpenCV实现传统图片格式与base64转换
2021/06/13 Python
html5 录制mp3音频支持采样率和比特率设置
2021/07/15 Javascript