selenium+pandas 爬取实时汇率

使用场景

汇率是实时波动的,我们都希望在较高汇率时转账,但是实时盯着电脑是不现实的,本文目标实现python 脚本自动查询汇率。汇率信息参考:https://www.pandaremit.com/zh/deu/china/eur-cny-converter?amount=2000
在这里插入图片描述

实现方式

selenium 安装

谷歌浏览器驱动下载地址:https://registry.npmmirror.com/binary.html?path=chromedriver
1、查看谷歌浏览器的版本:
chrome地址栏输入chrome://version,
2、下载安装对应的版本:
下载的对应版本的压缩包并解压,将exe文件放入 chrome安装目录(C:\Program Files\Google\Chrome\Application),并加入系统环境
在这里插入图片描述

3、最后执行pip install selenium命令,安装 selenium 库。

pip install selenium

动态页面加载

selenium实现动态页面加载

# 创建虚拟操作器
driver = webdriver.Chrome()
# 打开网址
url = f"https://www.pandaremit.com/zh/deu/china/eur-cny-converter?amount=2000"
driver.get(url)

# 确保网页完全加载(table出现)
WebDriverWait(driver, 20).until(lambda driver: driver.find_element(By.XPATH, '//table').is_displayed())

# 找到表格参数
table = driver.find_element(By.XPATH, "//table")
driver.quit()

实时汇率获取

利用pandas获取页面表格

# 找到表格参数
table = driver.find_element(By.XPATH, "//table")

# 将玩也上的表格转为pandas的dataframe
table_html = table.get_attribute('outerHTML')
df = pd.read_html(table_html)[0]

完整代码演示

# 引用第三方库
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
import pandas as pd

def exchange_rates_crawler(tag_country, transfer_currency, tag_currency):
    """
    输入: 目标转入国家、转出币种、转入币种
    :return: 转账汇率
    """
    # 创建虚拟操作器
    driver = webdriver.Chrome()

    # 打开网页
    url = f"https://www.pandaremit.com/zh/deu/{tag_country}/{transfer_currency}-{tag_currency}-converter?amount=2000"
    driver.get(url)

    # 等待网页加载,直到table被加载
    WebDriverWait(driver, 20).until(lambda driver: driver.find_element(By.XPATH, '//table').is_displayed())

    # 找到表格参数
    table = driver.find_element(By.XPATH, "//table")

    # 将玩也上的表格转为pandas的dataframe
    table_html = table.get_attribute('outerHTML')
    df = pd.read_html(table_html)[0]
    driver.quit()

    # 读取汇率值
    element_rate = df["汇率"][0]
    return element_rate

if __name__ == "__main__":
	"""
	主函数:获取实时转账汇率
	"""
	exchange_rate = exchange_rates_crawler(tag_country='china', transfer_currency='eur',  tag_currency='cny')
	print(exchange_rate)

总结

本文主要展示如何获取动态加载页面中的信息(比如网页表格延迟加载),另外涉及selenium函数其他用法,xpath使用方法以及HTML知识有兴趣读者可以自己探索💗
创作不易,喜欢请支持,您的支持将是我前进最大的动力!
在这里插入图片描述

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值