Python Selenium 按列名称复制表列

标签 python selenium xpath

我有一个包含这些标题的表,如下所示:Table with Column Headings

如何使用 xpath 选择整个列来存储在数组中。 我希望有不同的数组,例如:

courses = []
teacher = []
avg = []

请记住,这些列没有任何 ID 或类,因此我需要一种仅使用列名称进行选择的方法。

这是该表的代码:

<table border="0">
<tbody>
<tr>
<td nowrap="nowrap">Courses</td>
<td nowrap="nowrap">Teacher</td>
<td><select name="fldMarkingPeriod" onchange="switchMarkingPeriod(this.value);">
<option value="MP1">MP1</option>
<option selected="selected" value="MP2">MP2</option>
<option value="MP3">MP3</option>
</select>Avg</td>
</tr>
<tr>
<td nowrap="nowrap">[Course Name]</td>
<td nowrap="nowrap">[Teacher Name]</td>
<td>
<table width="100%" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td title="View Course Summary" width="70%">100%</td>
<td width="30%">A+</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td nowrap="nowrap">[Course Name]</td>
<td nowrap="nowrap">[Teacher Name]</td>
<td>
<table width="100%" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td title="View Course Summary" width="70%">100%</td>
<td width="30%">A+</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td nowrap="nowrap">[Course Name]</td>
<td nowrap="nowrap">[Teacher Name]</td>
<td>
<table width="100%" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td title="View Course Summary" width="70%">100%</td>
<td width="30%">A+</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>

有什么想法吗?谢谢。

最佳答案

不确定为什么您需要按列的数据,但这里是一个示例实现:

courses = []
teachers = []
avgs = []

for row in table.find_elements_by_css("table > tbody > tr")[1:]:
    course, teacher, _, avg = [td.text for td in row.find_elements_by_xpath(".//td")]

    courses.append(course)
    teachers.append(teacher)
    avgs.append(avg)

关于Python Selenium 按列名称复制表列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35386901/

相关文章:

java - 下载文件存储位置和处理使用带有 JAVA 的 selenium webdriver 下载弹出窗口

Python XPath/libxml2 命名空间查询

python - Flask-Admin (python) - 覆盖模板时遇到问题

java - 没有捕获 NoSuchElementException

python - 保持 python 守护进程存活

python - 解析生成的网页 Python Selenium

Selenium Webdriver 对象的 xpath 长度

python - 使用 XPath 查找最上面的以下元素

python - jinja2 表单包含不起作用

python - FFMPEG concat 在剪辑之间留下音频间隙