python 使用Selenium的网页搜罗未返回与UI上相同的结果

huwehgph  于 2023-02-15  发布在  Python
关注(0)|答案(1)|浏览(134)

上周,用户@KunduK好心地帮我放弃了一个网站,返回了一个particular record的地址
相关记录:https://register.fca.org.uk/s/firm?id=001b000000MfQU0AAN
通过使用以下代码片段;

address=WebDriverWait(driver,10).until(EC.visibility_of_element_located((By.CSS_SELECTOR,"h4[data-aura-rendered-by] ~p:nth-of-type(1)"))).text
print(address)

然而,当我试图理解这个片段时,我开始看到一些额外的数据被返回。
在下面的屏幕截图中,左边是预期返回的结果,而右边是正在返回的结果。
检查元素,我可以看到有一个额外的行(以黄色突出显示)(未显示在UI上(右手侧))

我还尝试获取"网站"和"参考编号",并遵循之前提供的示例,但是按照这些步骤(https://www.scrapingbee.com/blog/selenium-python/),我无法获得所需的返回结果

    • 当前代码:**
Website=WebDriverWait(driver,10).until(EC.visibility_of_element_located((By.CSS_SELECTOR,".accordion_text h4"))).text
print(Website)
    • 网站检查**

期待您的帮助!

pbwdgjma

pbwdgjma1#

要提取 * 网站地址 * 和 * 公司参考编号 *,理想情况下需要为visibility_of_element_located()引入WebDriverWait,并且可以使用以下locator strategies之一:

  • 使用 * 网址 *:
driver.get('https://register.fca.org.uk/s/firm?id=001b000000MfQU0AAN')
print(WebDriverWait(driver, 5).until(EC.visibility_of_element_located((By.XPATH, "//h4[text()='Website']//following-sibling::a[1]"))).get_attribute("href"))
  • 使用公司参考编号
driver.get('https://register.fca.org.uk/s/firm?id=001b000000MfQU0AAN')
print(WebDriverWait(driver, 5).until(EC.visibility_of_element_located((By.XPATH, "//h4[text()='Firm reference number']//following-sibling::p[1]"))).text)
  • 控制台输出:
https://www.masonowen.com/
311960
      • 注意**:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC

您可以在How to retrieve the text of a WebElement using Selenium - Python中找到相关的讨论

参考文献

有用文档链接:

相关问题