这个需求原本是来源于公司同事工做中需求,用户须要使用数据分析工具Power BI抓取多页的中国银行官网上当天的外汇数据。可是没能研究出来。html
我就开始在网络上找关于使用python来抓取当天汇率的案例分享,没想到“知乎”上有一个网友分享了如下这段代码: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:00url
这样就能够获取最新的实时外汇数据了,这个数据却是很符合我我的的需求,至于同事说的要同时获取多个页面的数据,仍是有待于研究的,若是有网友在这一方面愿意分享一下,那万分感谢了。spa