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 15 Python
python 将字符串转换成字典dict的各种方式总结
Mar 23 Python
解决pycharm安装后代码区不能编辑的问题
Oct 28 Python
python mysql断开重连的实现方法
Jul 26 Python
Python字典推导式将cookie字符串转化为字典解析
Aug 10 Python
Python socket 套接字实现通信详解
Aug 27 Python
python自动脚本的pyautogui入门学习
Apr 01 Python
新建文件时Pycharm中自动设置头部模板信息的方法
Apr 17 Python
浅析Python 条件控制语句
Jul 15 Python
Python如何绘制日历图和热力图
Aug 07 Python
python用Configobj模块读取配置文件
Sep 26 Python
Python绘图实现台风路径可视化代码实例
Oct 23 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函数array_merge用法一例(合并同类数组)
2013/02/03 PHP
php中ob函数缓冲机制深入理解
2015/08/03 PHP
php打开本地exe程序,js打开本地exe应用程序,并传递相关参数方法
2018/02/06 PHP
PHP利用Mysql锁解决高并发的方法
2018/09/04 PHP
Javascript & DHTML 实例编程(教程)基础知识
2007/06/02 Javascript
使用DNode实现php和nodejs之间通信的简单实例
2015/07/06 NodeJs
Bootstrap安装环境配置教程分享
2016/05/27 Javascript
jquery取消事件冒泡的三种方法(推荐)
2016/05/28 Javascript
单击按钮发送验证码,出现倒计时的简单实例
2017/03/17 Javascript
vue快捷键与基础指令详解
2017/06/01 Javascript
Jquery EasyUI $.Parser
2017/06/02 jQuery
Vue引用第三方datepicker插件无法监听datepicker输入框的值的解决
2018/01/27 Javascript
Vue-input框checkbox强制刷新问题
2019/04/18 Javascript
详解微信小程序轨迹回放实现及遇到的坑
2021/02/02 Javascript
[03:17]DOTA2-DPC中国联赛1月29日Recap集锦
2021/03/11 DOTA
python压缩文件夹内所有文件为zip文件的方法
2015/06/20 Python
详解python 字符串和日期之间转换 StringAndDate
2017/05/04 Python
http请求 request失败自动重新尝试代码示例
2018/01/25 Python
Python 异常的捕获、异常的传递与主动抛出异常操作示例
2019/09/23 Python
django有外键关系的两张表如何相互查找
2020/02/10 Python
tensorflow/core/platform/cpu_feature_guard.cc:140] Your CPU supports instructions that this T
2020/06/22 Python
python 进制转换 int、bin、oct、hex的原理
2021/01/13 Python
英国领先的在线药房:Pharmacy First
2017/09/10 全球购物
eBay瑞士购物网站:eBay.ch
2018/12/24 全球购物
Stio官网:男女、儿童户外服装
2019/12/13 全球购物
工商管理本科毕业生求职信范文
2013/10/05 职场文书
2014年党务公开实施方案
2014/02/27 职场文书
低碳环保口号
2014/06/12 职场文书
煤矿隐患排查制度
2015/08/05 职场文书
交通安全主题班会
2015/08/12 职场文书
创业计划书之餐饮馄饨店
2019/07/18 职场文书
Python OpenCV快速入门教程
2021/04/17 Python
Redis基于Bitmap实现用户签到功能
2021/06/20 Redis
HashMap实现保存两个key相同的数据
2021/06/30 Java/Android
mysql 直接拷贝data 目录下文件还原数据的实现
2021/07/25 MySQL
MySQL慢查询优化解决问题
2022/03/17 MySQL