繁体   English   中英

如何使用 Selenium 和 Python 从 html 中提取文本 H MATTHEWS

[英]How to extract the text H MATTHEWS from the html using Selenium and Python

通过使用“包含” function 如何从这种类型的 html 结构中提取信息,我正在尝试抓取“H MATTHEWS”此信息

HTML:

<p>
<strong>Date Published:</strong>
&nbsp; 20 APRIL 2020
<br>
<strong>Closing Date / Time:</strong>
&nbsp;TUESDAY, 05 MAY 2020
<br>
<strong>Enquiries:</strong>
<br>
Contact Person: H MATTHEWS
<br>
Email:&nbsp;
</p>

HTML 图像:

在此处输入图像描述

文本联系人:H MATTHEWS位于文本节点内。 因此,要打印文本,您必须为visibility_of_element_located()诱导WebDriverWait ,并且您可以使用以下任一Locator Strategies

  • 使用XPATHchildNodes

     print(driver.execute_script('return arguments[0].childNodes[9].textContent;', WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//p[./strong[text()='Date Published:']]")))).strip())
  • 使用XPATHsplitlines()

     print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//p[./strong[text()='Date Published:']]"))).get_attribute("innerHTML").splitlines()[-3])
  • 注意:您必须添加以下导入:

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

如果您的用例仅提取文本H MATTHEWS您可以使用以下任一解决方案:

  • 使用XPATHchildNodes

     print(re.split('[:]', driver.execute_script('return arguments[0].childNodes[9].textContent;', WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//p[./strong[text()='Date Published:']]")))).strip())[1])
  • 使用XPATHsplitlines()

     print(re.split('[:]', WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//p[./strong[text()='Date Published:']]"))).get_attribute("innerHTML").splitlines()[-3])[1])

参考

您可以在以下位置找到详细的相关讨论:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM