我需要抓取一个具有以下结构的网站:
<table>
<tbody>
<tr>
<td>
<p>
<a href="href1">Text1</a>
<a href="href2">Text2</a>
<a href="href3">Text3</a>
. . .
. . .
</p>
<p> . . . </p>
# More <p> elements with <a> as childrens
</td>
<td> . . . </td
# More <td> elements
</tr>
<tr> . . . </tr>
</tbody></table>
我想获取这些<a>
元素(文本和href)。我拥有的代码是:
elem = driver.find_element_by_xpath("//table")
elems = elem.find_elements_by_xpath("./p/a")
print(len(elems))
for i in elems:
print(i.text)
time.sleep(4)
元素的长度打印0
,因此基本上找不到元素。我也单独尝试过./a
而不是./p/a
,但结果相同。我刚接触硒,请帮忙。
答案 0 :(得分:0)
尝试使用xpath
获取所有标签元素
//table//tbody//child::p[1]//a
获取特定的标签元素
//table//tbody//child::p[1]//a[1]
//table//tbody//child::p[1]//a[2]
//table//tbody//child::p[1]//a[3]
答案 1 :(得分:0)
您可以使用以下代码找到所有文本:
elements = driver.find_elements_by_xpath("//a[contains(@href,'href')]")
for element in elements:
print(element.text)