我第一次在这里写作,虽然我花了足够的时间寻找答案。 这是一个很简单的问题,我希望有人能帮忙
我想从下面的url中获取一些数据: https://tracker.icon.foundation/addresses/1?count=100https://tracker.icon.foundation/block/1
该网站是动态更新的,因此我不得不使用美丽的硒汤
我试图使用相同的代码来获取信息(两种情况下都是地址),因为在我看来,这两个url的结构完全相同。我可以从第一个列表中删除,但第二个返回一个空列表。。我有两个问题: a) 知道为什么吗?:) b) 性能相当慢-有更好的方法吗
谢谢
我为第一个url使用的代码如下所示
from bs4 import BeautifulSoup
import requests
from selenium import webdriver
driver = webdriver.Chrome(executable_path="MYPATHFORWEBDRIVER")
driver.get('https://tracker.icon.foundation/addresses/1?count=100')
res = driver.execute_script('return document.documentElement.outerHTML')
driver.quit()
soup = BeautifulSoup(res, 'lxml')
box = soup.find('div', {'class': 'table-box'})
all_addresses = box.find_all('span', {'class': 'ellipsis'})
AddressList = []
for address in all_addresses:
a_type = address.find('a', {'class': 'on'}).text
AddressList.append(a_type)
print(AddressList)
数据是动态加载的,因此
requests
不支持它。但是,我们可以通过向发送GET
请求来获取数据要从第1-100页获取所有数据,我们可以使用^{} 函数
输出(部分):
正如您提到的,页面是动态加载的。这里的问题是,您在寻找作为DOM一部分的html树之前获得了html
输出:
注意:您将需要以下附加导入:
对于关于性能的另一个问题,您可能会使用无头浏览器,这将使速度加快一点
相关问题 更多 >
编程相关推荐