You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何抓取西联汇款网页的货币兑换信息?(BeautifulSoup遇阻)

问题原因

西联汇款的页面基于Angular框架开发,汇率信息是通过JavaScript动态渲染生成的。你用requests.get()只能获取到初始的静态HTML源码,此时动态生成的ng-star-inserted元素还未加载,所以BeautifulSoup无法找到对应内容。

解决方案

方案1:用Selenium模拟浏览器加载动态内容

通过模拟真实浏览器的加载过程,等待页面动态渲染完成后再提取元素。

步骤:

  1. 先安装Selenium库:pip install selenium
  2. 下载对应浏览器的驱动(比如ChromeDriver,需与浏览器版本匹配)

代码示例:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

url = 'https://www.westernunion.com/br/pt/web/send-money/start?ReceiveCountry=AR&ISOCurrency=ARS&SendAmount=100.00&FundsOut=BA&FundsIn=WUPay'

# 初始化Chrome浏览器(需确保ChromeDriver路径配置正确)
driver = webdriver.Chrome()
driver.get(url)

try:
    # 等待目标元素加载完成,超时时间10秒
    WebDriverWait(driver, 10).until(
        EC.presence_of_all_elements_located((By.CLASS_NAME, 'ng-star-inserted'))
    )
    
    # 遍历所有符合class的元素,筛选出包含兑换格式的内容
    spans = driver.find_elements(By.CLASS_NAME, 'ng-star-inserted')
    for span in spans:
        text = span.text.strip()
        if '=' in text:
            print(text)
finally:
    driver.quit()

方案2:直接调用页面的API接口(更高效)

西联的汇率数据是通过API接口获取的,你可以通过浏览器开发者工具找到对应的接口,直接请求接口获取数据:

  1. 打开浏览器F12开发者工具,切换到「Network」标签
  2. 刷新页面,搜索包含「exchange」「rate」的XHR/Fetch请求
  3. 复制接口URL、请求参数和必要的请求头,用requests直接调用

代码示例(需替换为实际找到的API信息):

import requests

# 替换为你从开发者工具中找到的真实API地址
api_url = "https://www.westernunion.com/api/exchange-rate"
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36",
    "Referer": "https://www.westernunion.com/"
}
params = {
    "fromCurrency": "BRL",
    "toCurrency": "ARS",
    "sendAmount": 100.00
}

response = requests.get(api_url, headers=headers, params=params)
data = response.json()

# 根据API返回的JSON结构,生成所需格式的兑换信息
exchange_info = f"1.00 BRL = {data['conversionRate']} Argentine Peso"
print(exchange_info)
注意事项
  • 使用Selenium时,确保浏览器驱动与浏览器版本完全匹配,避免加载失败
  • 调用API时,需注意接口的请求限制,遵守网站的使用条款和robots.txt协议
  • 西联的API参数和地址可能会更新,需定期检查调整

内容的提问来源于stack exchange,提问作者Vinícius

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 14:20:23