利用Python中的Xpath实现一个在线汇率转换器


Posted in Python onSeptember 09, 2020

前言

在之前的语法里面,我们记得有一个初识Python之汇率转换篇,在那个程序里面我们发现可以运用一些基础的语法写一个汇率计算,但是学到后面的小伙伴就会发现这个小程序有一定的弊端。

首先,它不可以实时的获取汇率的值,每次都需要我们自己去定义一个汇率转换值,这个就会显得不是很智能,有点机械,所以我们这一个利用爬虫爬取一个网址里面的汇率值(一直在更新的),这里我们利用Xpath来获取这个数据值

其次我们发现在之前的程序里面,我们好像只能输入两位数的货币数据,这一次我们通过正负索引的方法,只获取除了最后三个单位的之外的数据即可,灵活的运用,然后输出最后带入单位,最后让输出个更加的美观和直接。

下面我们来看看爬虫数据的代码

首先我们看看这个网址,我们来解析一下这个网页的数据页面

利用Python中的Xpath实现一个在线汇率转换器

利用Python中的Xpath实现一个在线汇率转换器

导入库和爬取数据

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)#打印状态码
  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语法规则,大家可以移步于初识爬虫之Xpath语法篇看看,其实一条语句就可以解决,非常的方便。

转换程序代码

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定义函数
      convert_currency2 = lambda x: x * exchange_rate
      # 调用lambda函数
      out_money = convert_currency2(in_money)
      print('转换后的金额是:{} {} '.format(round(out_money), string))
    else:
      print('无法计算')

其实里面没有什么难点,只是对于一些语法不够熟练的小伙伴来说有一点难,不过多看几次就好了

下面我们来看看演示效果

利用Python中的Xpath实现一个在线汇率转换器

全部代码

# -*- 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)#打印状态码
  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定义函数
      convert_currency2 = lambda x: x * exchange_rate
      # 调用lambda函数
      out_money = convert_currency2(in_money)
      print('转换后的金额是:{} {} '.format(out_money, string))
    else:
      print('无法计算')

Get_huilv(url, headers)

总结

到此这篇关于利用Python中的Xpath实现一个在线汇率转换器的文章就介绍到这了,更多相关Python Xpath实现在线汇率转换器内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python线程锁(thread)学习示例
Dec 04 Python
python修改字典内key对应值的方法
Jul 11 Python
Python中Scrapy爬虫图片处理详解
Nov 29 Python
使用Python读取大文件的方法
Feb 11 Python
Python实现简易过滤删除数字的方法小结
Jan 09 Python
Python实现的大数据分析操作系统日志功能示例
Feb 11 Python
完美解决python3.7 pip升级 拒绝访问问题
Jul 12 Python
Tensorflow tf.dynamic_partition矩阵拆分示例(Python3)
Feb 07 Python
Python脚本去除文件的只读性操作
Mar 05 Python
Python with语句用法原理详解
Jul 03 Python
selenium与xpath之获取指定位置的元素的实现
Jan 26 Python
详解Python中下划线的5种含义
Jul 15 Python
pytorch使用horovod多gpu训练的实现
Sep 09 #Python
python,Java,JavaScript实现indexOf
Sep 09 #Python
python 5个顶级异步框架推荐
Sep 09 #Python
python PyAUtoGUI库实现自动化控制鼠标键盘
Sep 09 #Python
Pytorch生成随机数Tensor的方法汇总
Sep 09 #Python
详解python内置模块urllib
Sep 09 #Python
python语音识别指南终极版(有这一篇足矣)
Sep 09 #Python
You might like
PHP缩略图生成和图片水印制作
2017/01/07 PHP
php文件上传原理与实现方法详解
2019/12/20 PHP
Prototype使用指南之dom.js
2007/01/10 Javascript
Dom与浏览器兼容性说明
2010/10/25 Javascript
jQuery中操控hidden、disable等无值属性的方法
2014/01/06 Javascript
全面了解JS中的匿名函数
2016/06/29 Javascript
jQuery实现手机版页面翻页效果的简单实例
2016/10/05 Javascript
Vue.js路由vue-router使用方法详解
2017/03/20 Javascript
jQuery表单设置值的方法
2017/06/30 jQuery
基于vue,vue-router, vuex及addRoutes进行权限控制问题
2018/05/02 Javascript
微信小程序利用canvas 绘制幸运大转盘功能
2018/07/06 Javascript
vue-cli配置flexible过程详解
2019/07/04 Javascript
javascript实现雪花飘落效果
2020/08/19 Javascript
vue全局使用axios的操作
2020/09/08 Javascript
Python优化技巧之利用ctypes提高执行速度
2016/09/11 Python
python的concat等多种用法详解
2018/11/28 Python
python 判断文件还是文件夹的简单实例
2019/06/10 Python
django settings.py 配置文件及介绍
2019/07/15 Python
pytorch构建多模型实例
2020/01/15 Python
Python查找不限层级Json数据中某个key或者value的路径方式
2020/02/27 Python
HTML5实现多张图片上传功能
2016/03/11 HTML / CSS
html5中使用hotcss.js实现手机端自适配的方法
2020/04/23 HTML / CSS
澳大利亚领先的睡衣品牌:Peter Alexander
2016/08/16 全球购物
Yves Rocher伊夫·黎雪美国官网:法国始创植物美肌1959
2019/01/09 全球购物
全球500多个机场的接送服务:Suntransfers
2019/06/03 全球购物
大一学生假期实习的自我评价
2013/10/12 职场文书
银行开业庆典方案
2014/02/06 职场文书
护士演讲稿优秀范文
2014/04/30 职场文书
大学生工作自荐书
2014/06/16 职场文书
幼儿园家长安全责任书
2014/07/22 职场文书
妈妈活动方案
2014/08/15 职场文书
先进人物事迹材料
2014/12/29 职场文书
工作后的感想
2015/08/07 职场文书
严以律己专题学习研讨会发言材料
2015/11/09 职场文书
2016年青少年禁毒宣传教育活动总结(学校)
2016/04/05 职场文书
Python实现机器学习算法的分类
2021/06/03 Python