如何使用硒在h3标签内获取列表文本


import urllib3
import certifi
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.keys import Keys
import requests
from bs4 import BeautifulSoup
import time
import ssl
http = urllib3.PoolManager(ca_certs=certifi.where())
chrome_options = Options()
chrome_options.add_argument("--incognito")
driver = webdriver.Chrome(options=chrome_options, executable_path="D:\python works\driver\chromedriver.exe")
URL= "https://physicians.wustl.edu/people/christopher-d-abraham-md/"
driver.get(URL)
time.sleep(10)
a = driver.find_element_by_xpath("//div[@class='wuphys-ppl affiliations']").text
print(a)
time.sleep(10)

<div class="wuphys-ppl affiliations">
<h3>Hospital Affiliations</h3>
<ul><li>Barnes-Jewish Hospital</li>
<li>Barnes-Jewish West County Hospital</li>
<li>Christian Hospital - Northeast</li></ul>
</div>
**Required_output:**
Barnes-Jewish Hospital
Barnes-Jewish West County Hospital
Christian Hospital - Northeast

输出应该是Barnes-Jewish Hospital, Barnes-Jewish West County Hospital, Christian Hospital - Northeast。如何使用selenium

从h3标签获取列表

您的xpath应该看起来像这样,只从<li>而不是从<h3>获取文本:

//div[@class='wuphys-ppl affiliations']/ul//li

要获得所有文本,您必须使用find_elements_by_xpath()ant迭代ResultSet:

a = driver.find_elements_by_xpath("//div[@class='wuphys-ppl affiliations']/ul//li")
for e in a:
print(e.text)

输出:

Barnes-Jewish Hospital
Barnes-Jewish West County Hospital
Christian Hospital - Northeast

最新更新