【问题标题】:Selenium save website value in variable with pythonSelenium 使用 python 将网站值保存在变量中
【发布时间】:2021-08-10 02:39:44
【问题描述】:

我有一个脚本,可以单击我网站上的按钮来显示特定值。我想将这些特定值保存在 python 变量中。问题是这些值只有在我点击一些按钮后才会显示,所以我不能使用 beautifulsoup,因为它会在没有我的值的情况下扫描网站,所以我需要用 selenium 扫描这些值。有人知道该怎么做吗?感谢您的任何回答。

value = wait.until(EC.visibility_of_element_located((By.XPATH, "/html/body/div[2]/div[5]/div/div[1]/div[1]/div[1]/div[2]/div[2]/div/div[2]/div[2]/span[1]/span[1]"))).getAttribute("value") # get value

【问题讨论】:

  • 我不确定您在寻找什么样的答案。你想要定位器还是???您尚未提供任何相关的 HTML,因此我们无法编写定位器。您单击按钮,然后在单击后从元素中获取文本/值。使用相关的 HTML 更新您的问题,格式正确,并更清楚您要查找的内容。

标签: python python-3.x selenium selenium-webdriver


【解决方案1】:

您可以使用 webdriver Selenium 实例来获取页面源 (HTML)。喜欢driver.page_source。您可以将其分配给变量并进行相应的解析。

参考:https://selenium-python.readthedocs.io/api.html

【讨论】:

  • 当您已经在使用 Selenium 时,为什么要解析整个页面源代码以找到可以使用定位器在页面上轻松找到的一些值?
  • 只有在元素本质上是确定性的情况下才有效。拥有整个页面源代码可以让您在自定义逻辑方面更加灵活和强大。但是,当然,如果问题只需要一个元素(通过 xpath/id 等),那么您的观点是正确的。这个问题提到了 BeautifulSoup,所以给出这个可能是提问者想要的。
  • 如果元素不是“本质上确定性的”,那么这两种情况都不会奏效。如果您不知道要查找的内容,则无法解析整个页面源。但是...如果您使用 Selenium,则不必编写解析器。
猜你喜欢
  • 1970-01-01
  • 2012-06-13
  • 2022-08-18
  • 2016-10-16
  • 1970-01-01
  • 2021-04-07
  • 2022-12-07
  • 2021-05-22
  • 1970-01-01
相关资源
最近更新 更多