当前位置: 首页 > 知识库问答 >
问题:

找不到使用selenium的表

陆星文
2023-03-14

你好,我想从一个网站报废数据。我使用

 BeautifulSoup 

这是我使用的代码(没有导入):

df = pd.read_html(requests.get('myurl').text, flavor="bs4")
df = pd.concat(df)
df.to_csv("mycsv.csv", index=False)

到目前为止我没有这个代码的问题,但当我想从这个站点报废数据。上面的程序有一个错误,说找不到表。所以我用

selenium   

来解决我的问题。下面是代码:

driver = webdriver.Firefox(executable_path=r'C:\Users\myfolders\geckodriver.exe')

driver.get("https://www.nba.com/stats/teams/traditional/?sort=W_PCT&dir=-1")
html = driver.page_source
tables = pd.read_html(html)
data = tables[1]
driver.close()

但是,当我执行adove代码时,我又遇到了同样的问题

ValueError: No tables found

当我检查页面的html时,我会找到表属性。有谁能帮我解决这个问题吗?

共有1个答案

令狐跃
2023-03-14

在读取driver.page_source之前,可能需要等待加载表。在我的机器上测试了以下内容,并且能够拿起两张桌子。您可能希望根据需要添加额外的等待。

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait

import pandas as pd

driver = webdriver.Chrome()

driver.get("https://www.nba.com/stats/teams/traditional/?sort=W_PCT&dir=-1")

table = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.TAG_NAME, 'table'))
    )

html = driver.page_source
tables = pd.read_html(html)
driver.close()
print(tables)
 类似资料:
  • 问题内容: 我们正在升级到.NET Core,并且我们有一个使用Selenium进行某些任务的爬网引擎。我们使用它,并且在.NET 4.6.1中可以正常工作。 对于.NET Core,我们创建了一个控制台应用程序,并添加了以下软件包: 但是,当我运行代码时,出现以下错误: chromedriver.exe文件在当前目录或PATH环境变量上的目录中不存在。可以从http://chromedriver

  • 元素代码: 在屏幕上可以看到,输入xpath只有一个。 下面是代码,我在其中输入了相同的xpath,但得到如下错误: Selenium webdriver无法找到此xpath: 和这个(硒找不到)

  • 我不能在selenium中找到使用"id"的元素,因为id在每个执行会话中都是随机变化的,所以我不会在下一次执行中得到相同的id。因为没有其他唯一的属性来标识元素。 代码示例

  • 我正在尝试以下元素: 以下是Java代码: 它找不到元素。请帮忙。谢谢。

  • 然而,我知道它是失败的前一个命令(如下所示),因为它从来没有点击到这个页面。 失败代码; 也试过;

  • 我正在尝试在Selenium IDE中运行一个记录的测试用例。问题是当我尝试执行整个测试用例时,Selenium会停止它,而不是在页面上找到一个元素。问题是我可以执行测试用例的单个步骤。我认为Selenium会在加载新页面之前尝试找到一个元素,所以我使用了clickAnd等待、暂停和waitForElementPresent命令-什么都不起作用,Selenium会停止测试用例。 调试日志 我将非常