这个需求本来是来源于公司同事工作中需求,用户需要使用数据分析工具Power BI抓取多页的中国银行官网上当天的外汇数据。但是没能研究出来。

我就开始在网络上找关于使用python来抓取当天汇率的案例分享,没想到“知乎”上有一个网友分享了以下这段代码:

# -*- coding:utf-8 -*-
import re
from lxml import etree
import requests url = 'http://www.boc.cn/sourcedb/whpj/index.html' # 网址
html = requests.get(url).content.decode('utf8') #获取网页源码(中间涉及到编码问题,这是个大坑,你得自己摸索) # 方式一:正则匹配
a = html.index('<td>美元</td>') # 取得“美元”当前位置
s = html[a:a + 300] # 截取美元汇率那部分内容(从a到a+300位置)
result = re.findall('<td>(.*?)</td>', s) # 正则获取 # 方式二:lxml获取
# result=etree.HTML(html).xpath('//table[@cellpadding="0"]/tr[18]/td/text()') #写入txt
with open('汇率.txt', 'w+') as f:
f.write(result[0] + '\n')
f.write('现汇买入价:' + result[1] + '\n')
f.write('现钞买入价:' + result[2] + '\n')
f.write('现汇卖出价:' + result[3] + '\n')
f.write('现钞卖出价:' + result[4] + '\n')
f.write('中行折算价:' + result[5] + '\n')
f.write('发布时间:' + result[6] + result[7] + '\n')

这段代码是来自于“知乎”用户“花墙”,再次感谢这位网友的分享。

运行这段代码的前提是要安装好lxml,requests两个库,当然还得安装好virtualenv这个虚拟环境。

然后就可以放心跑上面的代码了,跑完之后,会自动生成一个txt文档,打开之后就是这样:

美元
现汇买入价:670.14
现钞买入价:664.69
现汇卖出价:672.98
现钞卖出价:672.98
中行折算价:671.67
发布时间:2019-03-1710:30:00

这样就可以获取最新的实时外汇数据了,这个数据倒是很符合我个人的需求,至于同事说的要同时获取多个页面的数据,还是有待于研究的,如果有网友在这一方面愿意分享一下,那万分感谢了。

我了解到的新知识之----如何使用Python获取最新外汇汇率信息的更多相关文章

  1. mysql数据库新插入数据,需要立即获取最新插入的id

    在MySQL中,使用auto_increment类型的id字段作为表的主键.通常的做法,是通过“select max(id) from tablename”的做法,但是显然这种做法需要考虑并发的情况, ...

  2. 线程高级应用-心得6-java5线程并发库中同步工具类(synchronizers),新知识大用途

    1.新知识普及 2. Semaphore工具类的使用案例 package com.java5.thread.newSkill; import java.util.concurrent.Executor ...

  3. 五个新知识:微软SHA2补丁,亚信专业工具,微软官方文档,使用过期签名(附官方推荐链接),注意使用具有UAC的CMD

    五个新知识:微软SHA2补丁,亚信专业工具,微软官方文档,使用过期签名 不支持SHA2算法的计算机更新补丁:https://technet.microsoft.com/zh-CN/library/se ...

  4. 我了解到的新知识之—MPLS

    下周末运营商来公司要对MPLS升级,对于一个多年权限管理经验的我来说未免有些陌生,幸好现在网络资源丰富,就开始了搜索之旅,找到了一些信息,所以在想干脆以后就开一个系列就叫<我了解到的新知识> ...

  5. 背水一战 Windows 10 (76) - 控件(控件基类): Control - 基础知识, 焦点相关, 运行时获取 ControlTemplate 和 DataTemplate 中的元素

    [源码下载] 背水一战 Windows 10 (76) - 控件(控件基类): Control - 基础知识, 焦点相关, 运行时获取 ControlTemplate 和 DataTemplate 中 ...

  6. 面试准备——(二)专业知识(2)Python

    面试遇到的问题: 滴滴: 1. Python的数据结构 2. list和tuple的区别 3. list中有哪些操作?append和extend的区别? 4. list和dict的却别?dict是有序 ...

  7. Python - 和我聊Python节目最新一期介绍 - 257期:使用超级电脑,Python,射电天文学知识来探索银河系

    今天,给大家简单介绍和我聊Python的最新一期节目,第257期:使用超级电脑,Python,射电天文学知识来探索银河系. 听着标题就觉得高大上,是的,我也是这么认为的.这次请的嘉宾来头很大,来自国际 ...

  8. 数据载入、存储及文件格式知识图谱-《利用Python进行数据分析》

    所有内容整理自<利用Python进行数据分析>,使用MindMaster Pro 7.3制作,emmx格式,源文件已经上传Github,需要的同学转左上角自行下载或者右击保存图片.

  9. 数据清洗与准备知识图谱-《利用Python进行数据分析》

    所有内容整理自<利用Python进行数据分析>,使用MindMaster Pro 7.3制作,emmx格式,源文件已经上传Github,需要的同学转左上角自行下载或者右击保存图片.

随机推荐

  1. 函数语法:JS获取浏览器窗口大小 获取屏幕,浏览器,网页高度宽度(转载)

    网页可见区域宽:document.body.clientWidth 网页可见区域高:document.body.clientHeight 网页可见区域宽:document.body.offsetWid ...

  2. token的设置与获取

    以用户登录为例: application-resources.yml: #用户session在redis中保存的key REDIS_STU_SESSION_KEY: REDIS_USER_SESSIO ...

  3. 剑指Offer编程题2——替换空格

    剑指Offer编程题2——替换空格 题目描述 请实现一个函数,将一个字符串中的每个空格替换成“%20”.例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happ ...

  4. Redis和memcahce的区别【转】

    先给大家讲一个基本知识点:数据库分类大致分为两类,关系型数据库和非关系型数据库.如果详细区分的话,还可以继续分下去. Redis不仅仅是缓存数据库 面试的时候,很多人会问,Redis和memcahce ...

  5. react - web + webpack4 从0构建

    https://www.jianshu.com/p/91a4214b913b  文章https://github.com/Liao123/react-web 可运行的代码 dev分支

  6. 微信支付的安全漏洞之XXE

    1.场景:国外安全社区公布微信支付官方SDK存在严重漏洞,可导致商家服务器被入侵(绕过支付的效果).目前,漏洞详细信息以及攻击方式已被公开,影响范围巨大(已确认陌陌.vivo因使用该SDK而存在该漏洞 ...

  7. lintcode 447 Search in a Big Sorted Array(倍增+二分)

    题意:给一个按照升序排序的正整数数组.这个数组很大以至于只能通过固定的接口ArrayReader->get(k)来访问第k个数.并且也没有办法得知这个数组有多大.找到给出的整数target第一次 ...

  8. JDK 5~8的特性对比

    原文请参考:https://bbs.csdn.net/topics/392062347 jdk5新特性 1.自动装箱和拆箱2.枚举3.静态导入4.可变参数5.內省   是Java语言对Bean类属性. ...

  9. 利用反射获取数据列+emit生成属性+单例模式

    1:IDictionary<string,string > 可以存储数据,将拼接的sql可以存储到这里下次可以使用 定义自定义属性表和列 typeof(T).GetCustomAttrib ...

  10. IO操作、PIL使用、Django的admin操作

    操作内存的流-StringIO | BytesIO from io import StringIO, BytesIO #创建操作字符串的内存流 sf = StringsIO() #往内存中写 sf.w ...