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中使用CasperJS获取JS渲染生成的HTML内容的教程
Apr 09 Python
简单介绍Python中的RSS处理
Apr 13 Python
用Python编写简单的定时器的方法
May 02 Python
基于Python实现一个简单的银行转账操作
Mar 06 Python
Python执行时间的计算方法小结
Mar 17 Python
python实现飞机大战
Sep 11 Python
python通过zabbix api获取主机
Sep 17 Python
python 微信好友特征数据分析及可视化
Jan 07 Python
解决Jupyter NoteBook输出的图表太小看不清问题
Apr 16 Python
matplotlib quiver箭图绘制案例
Apr 17 Python
Python用dilb提取照片上人脸的示例
Oct 26 Python
python 实现图片批量压缩的示例
Dec 18 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
咖啡知识 除了喝咖啡还有那些知识点
2021/03/06 新手入门
zend api扩展的php对象的autoload工具
2011/04/18 PHP
PHP获取一年中每个星期的开始和结束日期的方法
2015/02/12 PHP
php实现猴子选大王问题算法实例
2015/04/20 PHP
PHP实现的线索二叉树及二叉树遍历方法详解
2016/04/25 PHP
微信公众平台开发教程⑥ 微信开发集成类的使用图文详解
2019/04/10 PHP
php中的依赖注入实例详解
2019/08/14 PHP
为jquery.ui.dialog 增加“在当前鼠标位置打开”的功能
2009/11/24 Javascript
从零学JS之你需要了解的几本书
2014/05/19 Javascript
jQuery使用andSelf()来包含之前的选择集
2014/05/19 Javascript
jquery左边浮动到一定位置时显示返回顶部按钮
2014/06/05 Javascript
理解javascript正则表达式
2016/03/08 Javascript
JavaScript中函数声明与函数表达式的区别详解
2016/08/18 Javascript
jQuery加载及解析XML文件的方法实例分析
2017/01/22 Javascript
JavaScript反弹动画效果的实现代码
2017/07/13 Javascript
基于vue.js无缝滚动效果
2018/01/25 Javascript
vue页面切换到滚动页面显示顶部的实例
2018/03/13 Javascript
es6函数之rest参数用法实例分析
2020/04/18 Javascript
微信小程序 获取手机号 JavaScript解密示例代码详解
2020/05/14 Javascript
jquery+css3实现的经典弹出层效果示例
2020/05/16 jQuery
Vue实现图书管理案例
2021/01/20 Vue.js
Python写的PHPMyAdmin暴力破解工具代码
2014/08/06 Python
python实现接口并发测试脚本
2019/06/25 Python
Python中生成一个指定长度的随机字符串实现示例
2019/11/06 Python
Tensorflow tf.tile()的用法实例分析
2020/05/22 Python
德国柯吉澳趣味家居:Koziol
2017/08/24 全球购物
Alexandre Birman美国官网:亚历山大·伯曼
2019/10/30 全球购物
个人党性剖析材料
2014/02/03 职场文书
入党自荐书范文
2014/03/09 职场文书
婚礼主持词
2014/03/13 职场文书
《会走路的树》教后反思
2014/04/19 职场文书
小区门卫岗位职责范本
2014/08/24 职场文书
预备党员学习十八届三中全会精神思想汇报
2014/09/13 职场文书
信访稳定工作汇报
2014/10/27 职场文书
2014年学校食堂工作总结
2014/11/25 职场文书
windows安装 redis 6.2.6最新步骤详解
2022/04/26 Redis