我试图抓取表数据,发现它是动态的,并且来自iframe。我的代码片段不起作用。任何帮助的想法都是非常有用的
from selenium import webdriver
import requests
from bs4 import BeautifulSoup
browser = webdriver.Chrome('C://Python38/chromedriver')
browser.get("https://poocoin.app/rugcheck/0xe56842ed550ff2794f010738554db45e60730371/top-holders")
url = "https://poocoin.app/rugcheck/0xe56842ed550ff2794f010738554db45e60730371/top-holders"
r = requests.get(url)
soup = BeautifulSoup(r.text, 'lxml')
t = soup.find('table', class_='table table-bordered table-condensed text-small')
trs = t.find('tbody').find_all('tr')
for tr in trs[:10]:
print(list(tr.stripped_strings))
browser.quit()
当前输出/错误:
Traceback (most recent call last):
File "C:/Users/Acer/poocoin.py", line 8, in <module>
trs = t.find('tbody').find_all('tr')
AttributeError: 'NoneType' object has no attribute 'find'
我的理解是,页面在单独的调用中呈现iframe,因此标准的Soup调用找不到它
鉴于您正在导入硒,您是否尝试过switch_to()? 切换到iframe后,可以调用.page_source(),并将其用作bs4输入
网页是动态的,但表不是任何
<iframe>
的一部分。该表是当前网页的一部分在这里,我试图从您需要的表中提取数据
相关问题 更多 >
编程相关推荐