這個需求本來是來源於公司同事工作中需求,用戶需要使用數據分析工具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
這樣就可以獲取最新的實時外匯數據了,這個數據倒是很符合我個人的需求,至於同事說的要同時獲取多個頁面的數據,還是有待於研究的,如果有網友在這一方面願意分享一下,那萬分感謝了。