试图用Selenium抓取一个动态的javascript表,但"Unable to locate element"



如何使用Selenium抓取该网站(https://polkadot.subscan.io/account/12xtAYsRUrmbniiWQqJtECiBQrMn8AypQcXhnQAc6RB6XkLW?tab=transfer)的信息?

主要目标是刮掉"From, to, Value和time";信息并将其添加到pandas数据框架中,然后"玩弄它"。

因为我不能抓取它,所以我不能将它添加到数据框架中。

我试过了,使用基本的"inspect和复制xpath"方法:

代码如下:

link = "https://dotscan.com/account/13UVJyLnbVp9RBZYFwFGyDvVd1y27Tt8tkntv6Q7JVPhFsTB?tab=transfers"
driver.get(link)
download_btn = driver.find_element(By.XPATH, "//*[@id='rc-tabs-3-panel-1']/div/div[1]/div/table/tbody/tr[1]/td[6]/div/a")
download_btn.click()

这是我得到的错误信息:

消息:no such element: able to locate element

你不需要硒,普通的requests就足够了。如果您打开浏览器并检查开发工具中的Network选项卡,您可以看到它正在从API获取数据,在您的情况下,端点是https://polkadot.webapi.subscan.io/api/v2/scan/transfers,参数是row=10,page=0address=12xtAYsRUrmbniiWQqJtECiBQrMn8AypQcXhnQAc6RB6XkLW

如果您将所有这些组合在一起并提供用户代理(User-Agent),因为它似乎是API响应所必需的,您可以提出这样的替代:

import requests
header = {"User-Agent": "Mozilla/5.0"}
params = {
"row": 10,
"page": 0,
"address": "12xtAYsRUrmbniiWQqJtECiBQrMn8AypQcXhnQAc6RB6XkLW"
}
result = requests.get(
"https://polkadot.webapi.subscan.io/api/v2/scan/transfers",
params=params,
headers=header
)
print(result.json())

相关内容

最新更新