gpt4 book ai didi

python - 无法使用请求从网页中抓取某个字段的值

转载 作者:行者123 更新时间:2023-12-04 15:14:50 24 4
gpt4 key购买 nike

我正在尝试使用请求模块从网页中抓取 Balance 的值。我在开发工具和页面源代码中查找了名称 Balance,但无处可寻。我希望应该有任何方法可以在不使用任何浏览器模拟器的情况下从该网页获取 Balance 的值。

website address

我想要的输出:

enter image description here

我试过:

import requests
from bs4 import BeautifulSoup

link = '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)

最佳答案

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

enter image description here

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

您可以通过 here 查看响应并找到 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)

关于python - 无法使用请求从网页中抓取某个字段的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64520644/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com