利用Python中的Xpath實現(xiàn)一個在線匯率轉(zhuǎn)換器
前言
在之前的語法里面,我們記得有一個初識Python之匯率轉(zhuǎn)換篇,在那個程序里面我們發(fā)現(xiàn)可以運用一些基礎的語法寫一個匯率計算,但是學到后面的小伙伴就會發(fā)現(xiàn)這個小程序有一定的弊端。
首先,它不可以實時的獲取匯率的值,每次都需要我們自己去定義一個匯率轉(zhuǎn)換值,這個就會顯得不是很智能,有點機械,所以我們這一個利用爬蟲爬取一個網(wǎng)址里面的匯率值(一直在更新的),這里我們利用Xpath來獲取這個數(shù)據(jù)值
其次我們發(fā)現(xiàn)在之前的程序里面,我們好像只能輸入兩位數(shù)的貨幣數(shù)據(jù),這一次我們通過正負索引的方法,只獲取除了最后三個單位的之外的數(shù)據(jù)即可,靈活的運用,然后輸出最后帶入單位,最后讓輸出個更加的美觀和直接。
下面我們來看看爬蟲數(shù)據(jù)的代碼
首先我們看看這個網(wǎng)址,我們來解析一下這個網(wǎng)頁的數(shù)據(jù)頁面


導入庫和爬取數(shù)據(jù)
import requests
from lxml import etree
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36"
}
url = "https://www.huilv.cc/USD_CNY/"
def Get_huilv(url, headers1):
res = requests.get(url=url, headers=headers1, timeout=2)
# print(res.status_code)#打印狀態(tài)碼
html = etree.HTML(res.text)
USD_VS_RMB_0 = html.xpath('//div[@id="main"]/div[1]/div[2]/span[1]/text()')
for a in USD_VS_RMB_0:
b = a
USD_VS_RMB_1 = float(b)
print("實時匯率為:{}".format(USD_VS_RMB_1))
這里的Xpath語法規(guī)則,大家可以移步于初識爬蟲之Xpath語法篇看看,其實一條語句就可以解決,非常的方便。
轉(zhuǎn)換程序代碼
currency_str_value = 0
while currency_str_value != "":
USD_VS_RMB = float(str(USD_VS_RMB_1))
# 輸入帶單位的貨幣金額
currency_str_value = input('請輸入帶單位貨幣的金額: ')
# 獲取貨幣單位
unit = currency_str_value[-3:].upper() # 第一次判斷
if unit == 'CNY':
exchange_rate = 1 / USD_VS_RMB
string = "美元"
elif unit == 'USD':
exchange_rate = USD_VS_RMB
string = "元"
else:
exchange_rate = -1
if exchange_rate != -1:
in_money = eval(currency_str_value[0:-3])
# 使用lambda定義函數(shù)
convert_currency2 = lambda x: x * exchange_rate
# 調(diào)用lambda函數(shù)
out_money = convert_currency2(in_money)
print('轉(zhuǎn)換后的金額是:{} {} '.format(round(out_money), string))
else:
print('無法計算')
其實里面沒有什么難點,只是對于一些語法不夠熟練的小伙伴來說有一點難,不過多看幾次就好了
下面我們來看看演示效果

全部代碼
# -*- coding : utf-8 -*-
# @Time : 2020/9/8 12:37
# @author : 王小王
# @Software : PyCharm
# @File : 匯率實時計算.py
# @CSDN : https://blog.csdn.net/weixin_47723732
import requests
from lxml import etree
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36"
}
url = "https://www.huilv.cc/USD_CNY/"
def Get_huilv(url, headers1):
res = requests.get(url=url, headers=headers1, timeout=2)
# print(res.status_code)#打印狀態(tài)碼
html = etree.HTML(res.text)
USD_VS_RMB_0 = html.xpath('//div[@id="main"]/div[1]/div[2]/span[1]/text()')
for a in USD_VS_RMB_0:
b = a
USD_VS_RMB_1 = float(b)
print("實時匯率為:{}".format(USD_VS_RMB_1))
currency_str_value = 0
while currency_str_value != "":
USD_VS_RMB = float(str(USD_VS_RMB_1))
# 輸入帶單位的貨幣金額
currency_str_value = input('請輸入帶單位貨幣的金額: ')
# 獲取貨幣單位
unit = currency_str_value[-3:].upper() # 第一次判斷
if unit == 'CNY':
exchange_rate = 1 / USD_VS_RMB
string = "美元"
elif unit == 'USD':
exchange_rate = USD_VS_RMB
string = "元"
else:
exchange_rate = -1
if exchange_rate != -1:
in_money = eval(currency_str_value[0:-3])
# 使用lambda定義函數(shù)
convert_currency2 = lambda x: x * exchange_rate
# 調(diào)用lambda函數(shù)
out_money = convert_currency2(in_money)
print('轉(zhuǎn)換后的金額是:{} {} '.format(out_money, string))
else:
print('無法計算')
Get_huilv(url, headers)
總結(jié)
到此這篇關于利用Python中的Xpath實現(xiàn)一個在線匯率轉(zhuǎn)換器的文章就介紹到這了,更多相關Python Xpath實現(xiàn)在線匯率轉(zhuǎn)換器內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
解決pip安裝報錯required?to?install?pyproject.toml-based?projec
這篇文章主要介紹了解決pip安裝報錯required?to?install?pyproject.toml-based?projects問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-05-05
Python實現(xiàn)以主程序的形式執(zhí)行模塊
這篇文章主要介紹了Python實現(xiàn)以主程序的形式執(zhí)行模塊,首先創(chuàng)建一個以christmastree的命名的模塊并定義一個全局變量創(chuàng)建一個名稱為fun_christmastree()的函數(shù)展開詳情,感興趣的朋友可以參考一下2022-06-06
python基礎之reverse和reversed函數(shù)的介紹及使用
我們在整理資料的時候,有的時候過于混亂難以整理,這時我們不妨可以對它先進行一個排序,這樣可以方便我們?yōu)g覽,查詢,有利于我們整理資料,下面這篇文章主要給大家介紹了關于python基礎之reverse和reversed函數(shù)的介紹及使用,需要的朋友可以參考下2022-12-12
Python flashtext文本搜索和替換操作庫功能使用探索
本文將深入介紹Python flashtext庫,包括其基本用法、功能特性、示例代碼以及實際應用場景,以幫助大家更好地利用這個有用的工具2024-01-01
Win10系統(tǒng)下Pytorch環(huán)境的搭建過程
今天給大家?guī)淼氖顷P于Python的相關知識,文章圍繞著Win10系統(tǒng)Pytorch環(huán)境搭建過程展開,文中有非常詳細的介紹及圖文示例,需要的朋友可以參考下2021-06-06

