# -*- coding: utf-8 -*-
"""
获取实时汇率
Created on Fri Oct 18 13:11:40 2013 @author: alala
""" import httplib
import re
import MySQLdb
import datetime URL = 'fx.cmbchina.com' #网站名
PATH = '/hq/' #页面路径
HOST = 'localhost' #数据库地址(ip)
DB = "money" #数据库名称
USER = 'root' #数据库用户名
PSWD = 'sheet' #数据库密码 httpClient = None try:
#抓去网页内容
httpClient = httplib.HTTPConnection(URL, 80, timeout=30)
httpClient.request('GET', '/hq/')
response = httpClient.getresponse()
html = response.read()
#print html #用正则表达式抓去汇率数据
reg = re.compile(r"""
<tr>\s*<td\s+class="fontbold">\s*(?P<name>\S+)\s*</td>\s* #交易币
<td\s+align="center">\s*(?P<unit>\d+)\s*</td>\s* #交易币单位
<td\s+align="center"\s+class="fontbold">\s*(?P<base>\S+)\s*</td>\s* #基本币
<td\s*class="numberright">\s*(?P<midPrice>\d+\.\d+)\s*</td>\s* #中间价
<td\s*class="numberright">\s*(?P<sellPrice>\d+\.\d+)\s*</td>\s* #卖出价
<td\s*class="numberright">\s*(?P<buyPrice1>\d+\.\d+)\s*</td>\s* #现汇买入价
<td\s*class="numberright">\s*(?P<buyPrice2>\d+\.\d+)\s*</td>\s* #现钞买入价
<td\s*align="center">\s*(?P<time>\d+:\d+:\d+)\s*</td>\s* #时间
""", re.MULTILINE | re.X)
rows = reg.findall(html)
#打印汇率数据
for r in rows:
print ','.join(map(str,r)), '\n' #数据库操作
#确保mysqldb已经安装,可以用下面的命令安装
#pip install MySQL-python #建立和数据库系统的连接
conn = MySQLdb.connect(host=HOST, user=USER,passwd=PSWD) #获取操作游标
cursor = conn.cursor()
#执行SQL,创建一个数据库.
cursor.execute("CREATE DATABASE IF NOT EXISTS " + DB) #选择数据库
conn.select_db(DB);
#执行SQL,创建一个数据表.
cursor.execute("""CREATE TABLE IF NOT EXISTS exchange_rate(
name VARCHAR(50) COMMENT '交易币' PRIMARY KEY,
unit INT COMMENT '交易币单位',
base VARCHAR(50) COMMENT '基本币',
midPrice FLOAT COMMENT '中间价',
sellPrice FLOAT COMMENT '卖出价',
buyPrice1 FLOAT COMMENT '现汇买入价',
buyPrice2 FLOAT COMMENT '现钞买入价',
time DATETIME COMMENT '时间' ) """)
records = []
for r in rows:
(name,unit,base,midPrice,sellPrice,buyPrice1,buyPrice2,time) = r
time = datetime.datetime.strptime(datetime.datetime.now().strftime('%Y-%m-%d')
+ " " + time,'%Y-%m-%d %H:%M:%S')
record = (name,int(unit),base,float(midPrice),float(sellPrice),
float(buyPrice1),float(buyPrice2),time)
records.append(record)
#print records
#更新汇率
cursor.executemany("REPLACE exchange_rate VALUES(%s,%s,%s,%s,%s,%s,%s,%s)"
,records);
conn.commit() #关闭连接,释放资源
cursor.close(); except Exception,e:
print e
finally:
if httpClient:
httpClient.close()

python抓取汇率的更多相关文章

  1. Python 抓取网页并提取信息(程序详解)

    最近因项目需要用到python处理网页,因此学习相关知识.下面程序使用python抓取网页并提取信息,具体内容如下: #---------------------------------------- ...

  2. 使用 Python 抓取欧洲足球联赛数据

    Web Scraping在大数据时代,一切都要用数据来说话,大数据处理的过程一般需要经过以下的几个步骤    数据的采集和获取    数据的清洗,抽取,变形和装载    数据的分析,探索和预测    ...

  3. python抓取性感尤物美女图

    由于是只用标准库,装了python3运行本代码就能下载到多多的美女图... 写出代码前面部分的时候,我意识到自己的函数设计错了,强忍继续把代码写完. 测试发现速度一般,200K左右的下载速度,也没有很 ...

  4. python抓取网页例子

    python抓取网页例子 最近在学习python,刚刚完成了一个网页抓取的例子,通过python抓取全世界所有的学校以及学院的数据,并存为xml文件.数据源是人人网. 因为刚学习python,写的代码 ...

  5. Python抓取页面中超链接(URL)的三中方法比较(HTMLParser、pyquery、正则表达式) <转>

    Python抓取页面中超链接(URL)的3中方法比较(HTMLParser.pyquery.正则表达式) HTMLParser版: #!/usr/bin/python # -*- coding: UT ...

  6. 如何用python抓取js生成的数据 - SegmentFault

    如何用python抓取js生成的数据 - SegmentFault 如何用python抓取js生成的数据 1赞 踩 收藏 想写一个爬虫,但是需要抓去的的数据是js生成的,在源代码里看不到,要怎么才能抓 ...

  7. 关于python抓取google搜索结果的若干问题

    关于python抓取google搜索结果的若干问题     前一段时间一直在研究如何用python抓取搜索引擎结果,在实现的过程中遇到了很多的问题,我把我遇到的问题都记录下来,希望以后遇到同样问题的童 ...

  8. 用python抓取智联招聘信息并存入excel

    用python抓取智联招聘信息并存入excel tags:python 智联招聘导出excel 引言:前一阵子是人们俗称的金三银四,跳槽的小朋友很多,我觉得每个人都应该给自己做一下规划,根据自己的进步 ...

  9. python抓取月光博客的全部文章而且依照标题分词存入mongodb中

    猛击这里:python抓取月光博客的全部文章

随机推荐

  1. js中settimeout方法加参数

    js中settimeout方法加参数的使用. 简单使用看w3school  里面没有参数调用,  例子: <script type="text/javascript"> ...

  2. PHP生成随机字符串包括大小写字母

    PHP生成随机字符串包括大小写字母,这里介绍两种方法: 第一种:利用字符串函数操作 <?php /** *@blog <www.phpddt.com> */ function cre ...

  3. How to using x++ code create GL journal[AX2012]

    static void FAN_GLImport(Args _args) { AxLedgerJournalTable header = new AxLedgerJournalTable(); AxL ...

  4. Javascript 插件统一的实现步骤

    步骤: // 1. 定义立即调用的函数 +function($){ "use strict"; //使用严格模式ES5支持 //后续步骤 // 2. xx 插件类及原型方法的定义 ...

  5. 淘宝:OceanBase分布式系统负载均衡案例分享

    Heroku因"随机调度+Rails单线程处理导致延迟增加的负载均衡失败"的案例之后,我们在思考:在负载均衡测试时发现问题并妥善解决的成功经验有没有?于是,挖掘出"淘宝在 ...

  6. 第八章 管理类型(In .net4.5) 之 加强封装

    1. 概述 本章内容包括 访问控制符.属性 和 显式接口实现. 2. 主要内容 2.1 访问控制符 封装的核心是隐藏信息.访问控制符用来实现类型成员的访问控制. C#的访问控制符有:public, i ...

  7. 2.html5的基本格式

    分享完html语言的核心之后,是时候开始写了.理论上,只要符合格式要求,就算是用记事本也可以写.但是,这种蛋疼且生产力低下的行为还是少做的好,选一个适合自己的IDE才是上上之选,至于哪个合适自己,那就 ...

  8. Flask —— 使用Python和OpenShift进行即时Web开发

    最近Packtpub找到了我,让我给他们新出版的关于Flask的书写书评.Flask是一个很流行的Python框架.那本书是Ron DuPlain写的<Flask 即时Web开发>.我决定 ...

  9. C 简单处理excel 转成 json

    引言 工作中常需要处理excel转json问题. 希望这篇博文能简单描述这个问题.并提供一种解决思路.提升感悟. 今天我们处理的事就是为了把 xlsm => json. 一种方式是. 去 goo ...

  10. detain ssh server 设置

    ssh connection refused 处理方法 一般这种情况是 opens server 没安装 或 没启动 检查 openssh 是否安装 su 登录root账号,安装 openssh se ...