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 相关文章推荐
django 按时间范围查询数据库实例代码
Feb 11 Python
python 把文件中的每一行以数组的元素放入数组中的方法
Apr 29 Python
python实现ID3决策树算法
Aug 29 Python
Linux下python3.6.1环境配置教程
Sep 26 Python
python+mysql实现教务管理系统
Feb 20 Python
Python shelve模块实现解析
Aug 28 Python
PyTorch实现更新部分网络,其他不更新
Dec 31 Python
pytorch 实现删除tensor中的指定行列
Jan 13 Python
python实现ssh及sftp功能(实例代码)
Mar 16 Python
OpenCV Python实现图像指定区域裁剪
Mar 12 Python
python matlab库简单用法讲解
Dec 31 Python
python 爬取京东指定商品评论并进行情感分析
May 27 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无限分类且支持输出树状图的详细介绍
2013/06/19 PHP
PHP下SSL加密解密、验证、签名方法(很简单)
2020/06/28 PHP
thinkPHP框架实现多表查询的方法
2018/06/14 PHP
JavaScript 学习笔记(十五)
2010/01/28 Javascript
JavaScript Eval 函数使用
2010/03/23 Javascript
很好用的js日历算法详细代码
2013/03/07 Javascript
仿新浪微博登陆邮箱提示效果的js代码
2013/08/02 Javascript
js实现单击图片放大图片的方法
2015/02/17 Javascript
JS运动基础框架实例分析
2015/03/03 Javascript
浅谈javascript基础之客户端事件驱动
2016/06/10 Javascript
第一次接触神奇的前端框架vue.js
2016/12/01 Javascript
vue上传图片组件编写代码
2017/07/26 Javascript
使用Vue.js和Element-UI做一个简单登录页面的实例
2018/02/23 Javascript
详解Vue webapp项目通过HBulider打包原生APP
2018/06/29 Javascript
JS内部事件机制之单线程原理
2018/07/02 Javascript
详解JavaScript中typeof与instanceof用法
2018/10/24 Javascript
js实现跳一跳小游戏
2020/07/31 Javascript
python自然语言编码转换模块codecs介绍
2015/04/08 Python
深入解析Python中的线程同步方法
2016/06/14 Python
Python Dataframe 指定多列去重、求差集的方法
2018/07/10 Python
pygame实现简易飞机大战
2018/09/11 Python
opencv转换颜色空间更改图片背景
2019/08/20 Python
Anaconda之conda常用命令介绍(安装、更新、删除)
2019/10/06 Python
使用python图形模块turtle库绘制樱花、玫瑰、圣诞树代码实例
2020/03/16 Python
Java Unsafe类实现原理及测试代码
2020/09/15 Python
Python通过len函数返回对象长度
2020/10/22 Python
python实现简单猜单词游戏
2020/12/24 Python
学会迭代器设计模式,帮你大幅提升python性能
2021/01/03 Python
美国现代家具购物网站:LexMod
2019/01/09 全球购物
如何查找和删除数据库中的重复数据
2014/11/05 面试题
我的未来不是梦演讲稿
2014/09/02 职场文书
运动会表扬稿
2015/01/16 职场文书
人口与计划生育责任书
2015/05/09 职场文书
详解如何修改nginx的默认端口
2021/03/31 Servers
python制作图形界面的2048游戏, 基于tkinter
2021/04/06 Python
PHP连接MSSQL数据库案例,PHPWAMP多个PHP版本连接SQL Server数据库
2021/04/16 PHP