<a class="j-search-result-value jiveTT-hover-user" data-userid="12345" href="/people/ARNLWS"><span class="j-search-result-title">Aaron Lewis</span></a>
<a class="j-search-result-value jiveTT-hover-user" data-userid="99886" href="/people/DONLDTUMP"><span class="j-search-result-title">Donald Trump</span></a>
如何从上面提取 href?我尝试使用find_element_by_class_name
但返回NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":".j-search-result-value jiveTT-hover-user"}
我的代码:
driver = webdriver.Chrome(r'xxxxchromedriver.exe')
driver.get("xxx")
eList = driver.find_element_by_class_name('j-search-result-value jiveTT-hover-user')
hrefList = []
for e in eList:
hrefList.append(e.get_attribute('href'))
for href in hrefList:
print(href)
我没有使用xpath
的原因,因为它可能会因 URL 而异。 任何帮助不胜感激!谢谢。
该方法.find_element_by_class_name
单个类名。
要收集元素列表,您必须使用.find_elements
而不是.find_element
。
我建议你像这样使用.find_elements_by_css_selector
:
eList = driver.find_elements_by_css_selector('.j-search-result-value.jiveTT-hover-user')
想法: 建议找到那些包含data-userid
属性的元素,然后提取它们的href
属性:
未经测试的伪代码:
eList = driver.find_elements_by_x_path('//a[@data-userid]')
hrefList = []
for e in eList:
hrefList.append(e.get_attribute('href'))
for href in hrefList:
print(href)