为了账号安全,请及时绑定邮箱和手机立即绑定

无法使用请求从网页中抓取特定字段的值

无法使用请求从网页中抓取特定字段的值

拉丁的传说 2024-01-04 10:39:06
Balance我正在尝试使用请求模块从网页中获取 的值。Balance我在开发工具和页面源代码中查找过该名称,但没有找到。我希望应该有任何方法可以在不使用任何浏览器模拟器的情况下从该网页获取价值Balance。网站地址我追求的输出:我尝试过:import requestsfrom bs4 import BeautifulSouplink = 'https://tronscan.org/?fbclid=IwAR2WiSKZoTDPWX1ufaAIEg9vaA5oLj9Yd_RUfpjE6MWEQKRGBaK-L_JdtwQ#/contract/TCSPn1Lbdv62QfSCczbLdwupNoCFYAfUVL'headers = {"User-Agent":"Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"}res = requests.get(link,headers=headers)soup = BeautifulSoup(res.text,'lxml')balance = soup.select_one("li:has(> p:contains('Balance'))").get_text(strip=True)print(balance)
查看完整描述

1 回答

?
慕田峪4524236

TA贡献1875条经验 获得超5个赞

页面的 HTML 没有平衡的原因是页面正在发出 AJAX 请求,这些请求在页面加载后发送回您想要的信息。您可以通过在 Chrome 中按 F12 加载开发人员窗口来查看这些请求(在其他浏览器中可能有所不同),转到“网络”选项卡,您将看到以下内容:

https://img1.sycdn.imooc.com/65961a7f00019c4706560721.jpg

在这里,您可以看到所需的请求account?address=后面是页面 URL 字符串中的代码,将鼠标悬停在该代码上会显示 AJAX 请求的完整 URL(以珊瑚色突出显示),以及包含以下内容的响应部分:您想要的数据在右侧以绿松石色突出显示。

您可以通过转到此处并查找来查看响应tokenBalances

为了在 Python 中获得平衡,您可以运行以下命令:

import requests, json


url = 'https://apilist.tronscan.org/api/account?address=TCSPn1Lbdv62QfSCczbLdwupNoCFYAfUVL'

headers = {"User-Agent":"Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"}


response = requests.get(url, headers=headers)

response = json.loads(response.text)


balance = response['tokenBalances'][0]['balance']


print(balance)


查看完整回答
反对 回复 2024-01-04
  • 1 回答
  • 0 关注
  • 107 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信