因此,我尝试使用selenium刮取一个webs table,尝试使用xpath提取表:
之前,我试图查找table类,但是没有找到表,所以我决定查找div元素
xpath="//div[@class='table-scroller ScrollableTable__table-scroller QuoteHistoryTable__table__scroller QuoteHistoryTable__QuoteHistoryTable__table__scroller']"
WebDriverWait(driver, 10).until(
expected_conditions.visibility_of_element_located((By.XPATH, xpath)))
source = driver.page_source
driver.quit()
soup = BeautifulSoup(source, "html5lib")
table = soup.find('div', {'class': 'table-scroller ScrollableTable__table-scroller QuoteHistoryTable__table__scroller QuoteHistoryTable__QuoteHistoryTable__table__scroller'})
df = pd.read_html(str(table), flavor='html5lib', header=0, thousands='.', decimal=',')
print(df[0])
我遇到的问题是,我只打印标题和第一行充满nans
的值:
为什么我得不到表的值?是什么让它这么难刮这个内容
编辑:@DebanjanB能够提供一个很好的答案,但是我无法复制输出,这背后的原因是什么
如果检查页面请求,您可能会注意到一个端点为您提供了正确的JSON信息:
https://api.euroinvestor.dk/indices/21/instruments
您可以使用
pandas
直接从URL读取(您甚至不需要Selenium):务必查看API使用条款(尤其是任何费率限制);否则,您可能会被阻止
要使用Selenium和python从OMX 30
<table>
提取内容,可以使用以下Locator Strategy:使用
XPATH
:注意:您必须添加以下导入:
控制台输出:
更新
正如您在评论中提到的,…要么超时,要么我只能获取标题这实际上意味着我们的定位器是正确的,问题在于渲染,在这种情况下,您可以^{} ,您可以使用以下解决方案:
相关问题 更多 >
编程相关推荐