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

无法从网页中获取某些表格数据的内容

姬康平
2023-03-14

我已经编写了Python 3脚本,它使用硒从公鸡资源的IFrame中的表中提取数据。此表包含2018年MLB时间表。

但是,在执行脚本时,我收到以下错误:

selenium.common.exceptions.TimeoutException:

当它到达脚本中包含iframe的行时。为什么会这样?

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

driver = webdriver.Chrome()
driver.get("link above")
wait = WebDriverWait(driver, 10)
wait.until(EC.frame_to_be_available_and_switch_to_it(wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, "iframe#pageswitcher-content")))))
for items in wait.until(EC.presence_of_all_elements_located((By.CSS_SELECTOR, "table.waffle tr"))):
    data = [item.text for item in items.find_element_by_css_selector("td")]
    print(data)

driver.quit()

顺便说一句,如果你浏览上面的链接,你可以看到包含不同颜色徽标和文本的表格

仅供参考,我不希望在该iframe内恢复链接;相反,我想切换到它来获取数据。

共有1个答案

曹驰
2023-03-14

该页面中有两个嵌套的iFrame用于访问内容。请尝试以下方法:

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

driver = webdriver.Chrome()
driver.get("above link")
wait = WebDriverWait(driver, 10)
wait.until(EC.frame_to_be_available_and_switch_to_it(wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, "iframe")))))
wait.until(EC.frame_to_be_available_and_switch_to_it(wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, "iframe#pageswitcher-content")))))
for items in wait.until(EC.presence_of_all_elements_located((By.CSS_SELECTOR, "table.waffle tr"))):
    data = [item.text for item in items.find_elements_by_css_selector("td")]
    print(data)

driver.quit()
 类似资料:
  • 我正在使用以下方法来验证表格所有页面中的某些表格数据。我已经尝试了所有的可能性,任何人都可以分享您对此的看法。 下面的代码是我的页面, this . check application = function(text){ return element . all(by . CSS containing text(" # application-auth-list-2 tbody tr TD:fir

  • 您好,这里的场景是我想在页面的文本字段中输入一些值,在此之前,我需要使用xpath查找文本字段。 所以在这里,我在Excel表中有这些字段的值和xpath。如何让上面的代码工作?两个片段都不起作用或显示任何错误。 如能回复,我们将不胜感激。

  • 我正在React中的useEffect()内尝试从axios获取数据。我测试了后端,它工作正常,但在前端,我得到了一个错误401(未经授权) 反应代码: 后端代码: 服务器.js 项目路线.js 我得到的错误是: 如果有人能帮我找出错误,我会很高兴的

  • 问题内容: 我想从数据库表中检索值,并在页面的html表中显示它们。我已经在搜索这个,但是我找不到答案,尽管这肯定很容易(这应该是数据库的基础)。我想我搜索过的字词会误导我。数据库表名称是票据,它现在有6个字段(submission_id,formID,IP,名称,电子邮件和消息),但是应该有另一个字段称为ticket_number。我如何获取它以html表的形式显示db中所有的值: 然后是“ j

  • 本文向大家介绍Layui数据表格之获取表格中所有的数据方法,包括了Layui数据表格之获取表格中所有的数据方法的使用技巧和注意事项,需要的朋友参考一下 数据表格中的数据是通过直接赋值的方式。这里实际上思想是反过来的,将拿数据表格中的所有数据,转换为Layui数据表格拿原始数据去渲染数据表格。 1、创建一个作用域合适的JS对象数组用来保存数据表格中的原始数据。 2、将上一步创建的JS对象数组也就是原

  • 问题内容: 我已经用python与selenium结合编写了一个脚本,以解析网页中表格中的一些可用日期。该表位于标题下。表格数据位于id内。你可以看到三个日期还有,和。我希望根据我下面的预期输出来解析和排列它们。 网页连结 到目前为止,这是我的尝试: 目前,我的输出如下: 我的预期输出: 问题答案: 尝试使用以下代码: