Python Selenium -从类内获取链接



我试图从以下HTML中抓取href,但我需要第二个数据类来识别href:

<tr>
<td class="data">
<a target="_new" title="Title" href="https://somesite.com/file_to_scrape.pdf">Scraped Class</a>
<br>
</td>
<td class="data">Text to Identify Above Link</td>
<td class="data">Not relevant text</td>
</tr>

我做的第一件事是拉回所有命名为data的类的列表:

ls_class = driver.find_elements_by_class_name("data")

但是当我循环通过:

for clas in ls_class:
print(clas.text)
print(clas.get_attribute('href'))

打印结果为:

Scraped Class
None
Text to Identify Above Link
None
Not Relevant Text
None

我怎么能得到嵌套的href时,存在于data类?

而不是得到

ls_class = driver.find_elements_by_class_name("data")

你可以直接得到

elements = driver.find_elements_by_xpath("//td[@class='data']//a")
for element in elements:
print(element.text)
print(element.get_attribute('href'))

乌利希期刊指南
我认为你可以通过以下代码直接获得所需的元素:

element = driver.find_elements_by_xpath("//tr[.//td[@class='data'][text()='Text to Identify Above Link']//td[@class='data']//a[@href]")
print(element.get_attribute('href'))

我得到了它的工作使用解决方案张贴在这里:

ls_class = driver.find_elements_by_xpath("//td[@class='data']")
for clas in ls_class:
print(clas.text)
try:
print(clas.find_element_by_css_selector('a').get_attribute('href'))
except:
print("No Link")
现在我的输出是:
Scraped Class
https://somesite.com/file_to_scrape.pdf
Text to Identify Above Link
No Link
Not Relevant Text
No Link

最新更新