這個需求原本是來源於公司同事工做中需求,用戶須要使用數據分析工具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