我正在尝试按tr
类来查找.tableOne
。这是我的代码:
browser = webdriver.Chrome(executable_path=path, options=options)
cells = browser.find_elements_by_xpath('//*[@class="tableone"]')
但是cells
变量的输出为[]
,一个空数组。
这是页面的html:
<tbody class="tableUpper">
<tr class="tableone">
<td><a class="studentName" href="//www.abc.com"> student one</a></td>
<td><a href="//www.abc.com/overview"> <span class="id_one"></span> <span class="long">Place</span> <span class="short">Place</span></a></td>
<td class="hide-s">
<span class="state"></span> <span class="studentState">student_state</span>
</td>
</tr>
<tr class="tableone">..</tr>
<tr class="tableone">..</tr>
<tr class="tableone">..</tr>
<tr class="tableone">..</tr>
</tbody>
答案 0 :(得分:0)
请尝试以下操作:
import re
cells = browser.find_elements_by_xpath("//*[contains(local-name(), 'tr') and contains(@class, 'tableone')]")
for (e in cells):
insides = e.find_elements_by_xpath("./td")
for (i in insides):
result = re.search('\">(.*)</', i.get_attribute("outerHTML"))
print result.group(1)
此操作将获取具有类tr
的所有tableone
元素,然后遍历每个元素并列出所有tds
。然后遍历每个td
的externalHTML并剥离每个字符串以获取文本值。
我认为它还很不完善,会返回空字符串。您可能需要在最终产品中投入更多工作。