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利用Beautiful Soup模块搜索内容详解
Mar 29 Python
Python PyAutoGUI模块控制鼠标和键盘实现自动化任务详解
Sep 04 Python
Python中asyncio与aiohttp入门教程
Oct 16 Python
对python中数组的del,remove,pop区别详解
Nov 07 Python
python2和python3的输入和输出区别介绍
Nov 20 Python
在Python中关于使用os模块遍历目录的实现方法
Jan 03 Python
基于Django ORM、一对一、一对多、多对多的全面讲解
Jul 26 Python
python scrapy重复执行实现代码详解
Dec 28 Python
浅谈对python中if、elif、else的误解
Aug 20 Python
Python如何实现Paramiko的二次封装
Jan 30 Python
浅谈哪个Python库才最适合做数据可视化
Jun 28 Python
Python使用pandas导入xlsx格式的excel文件内容操作代码
Dec 24 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&mysql(五)
2006/10/09 PHP
我的论坛源代码(三)
2006/10/09 PHP
Sublime里直接运行PHP配置方法
2014/11/28 PHP
PHP常用算法和数据结构示例(必看篇)
2017/03/15 PHP
PHP 中 var_export、print_r、var_dump 调试中的区别
2018/06/19 PHP
php源码的使用方法讲解
2019/09/26 PHP
yii2.0框架数据库操作简单示例【添加,修改,删除,查询,打印等】
2020/04/13 PHP
在html页面上拖放移动标签
2010/01/08 Javascript
jQuery插件实现屏蔽单个元素使用户无法点击
2013/04/12 Javascript
原生Js实现元素渐隐/渐现(原理为修改元素的css透明度)
2013/06/24 Javascript
JavaScript使用indexOf获得子字符串在字符串中位置的方法
2015/04/06 Javascript
jquery获取url参数及url加参数的方法
2015/10/26 Javascript
AngularJS基础 ng-model-options 指令简单示例
2016/08/02 Javascript
Javascript中常用的检测方法小结
2016/10/08 Javascript
jQuery图片切换动画效果
2017/02/28 Javascript
JavaScript关联数组用法分析【概念、定义、遍历】
2017/03/15 Javascript
JS实现的简单表单验证功能示例
2017/10/13 Javascript
JS实现碰撞检测的方法分析
2018/01/19 Javascript
vue实现PC端录音功能的实例代码
2019/06/05 Javascript
微信小程序自定义navigationBar顶部导航栏适配所有机型(附完整案例)
2020/04/26 Javascript
[02:19]DOTA2女子战队FOX视频专访:希望更多美眉一起加入
2013/10/15 DOTA
[55:03]LGD vs EG 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
[01:27:44]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Aster BO3 第一场 1月24日
2021/03/11 DOTA
Python操作MySQL简单实现方法
2015/01/26 Python
pandas条件组合筛选和按范围筛选的示例代码
2019/08/26 Python
win7上tensorflow2.2.0安装成功 引用DLL load failed时找不到指定模块 tensorflow has no attribute xxx 解决方法
2020/05/20 Python
Python异常处理机制结构实例解析
2020/07/23 Python
Django框架安装及项目创建过程解析
2020/09/14 Python
浅析CSS3中鲜为人知的属性:-webkit-tap-highlight-color
2017/01/12 HTML / CSS
详解Html5 监听拦截Android返回键方法
2018/04/18 HTML / CSS
雅萌 (YA-MAN) :日本美容家电领域的龙头企业
2017/05/12 全球购物
英国DIY汽车维修配件网站:DIY Car Service Parts
2019/08/30 全球购物
教师实习自我鉴定
2013/12/14 职场文书
小学母亲节活动方案
2014/03/14 职场文书
前台接待岗位职责
2015/02/03 职场文书
python数据库批量插入数据的实现(executemany的使用)
2021/04/30 Python