如何用PowerShell抓取Banxico网站的欧元汇率数据?
用PowerShell抓取Banxico网站的欧元汇率
你的原代码只是提取了前5个表格的文本内容,没有精准定位到欧元对应的汇率行,所以输出的是杂乱文本,没法直接拿到目标数值。下面是可行的解决方案:
实现步骤与代码
clear $url = "https://www.banxico.org.mx/tipcamb/main.do?page=tip&idioma=sp" # 获取网页内容,加-UseBasicParsing避免IE依赖问题 $response = Invoke-WebRequest -Uri $url -UseBasicParsing # 直接定位到存放汇率的目标表格(网站里这个表格的id是tiposDatos) $targetTable = $response.ParsedHtml.getElementById("tiposDatos") # 遍历表格里的每一行 foreach ($row in $targetTable.getElementsByTagName("tr")) { $cells = $row.getElementsByTagName("td") # 找到包含EURO的行,确保行里有足够的单元格 if ($cells.Count -ge 3 -and $cells[0].innerText -match "EURO") { # 提取卖出价(第二列)和买入价(第三列),按需选择 $euroSellRate = $cells[1].innerText.Trim() $euroBuyRate = $cells[2].innerText.Trim() Write-Host "欧元卖出汇率:$euroSellRate" Write-Host "欧元买入汇率:$euroBuyRate" break # 找到目标后停止遍历 } }
代码说明
- 用
getElementById精准定位汇率表格,比盲目取前N个表格更稳定,不会因为网页结构小变动失效 - 遍历行时通过匹配"EURO"锁定目标行,再提取对应列的数值
-UseBasicParsing参数可以避免部分系统里因为IE未配置导致的调用失败问题
内容的提问来源于stack exchange,提问作者omar
相关产品推荐
相关产品推荐

