【发布时间】:2018-06-08 13:10:43
【问题描述】:
我有几个问题要解决:
1. 1-3 列可以合并单元格,因此缺少“td”值,如果这些列不存在 td,我如何填充每一行?或者,第 4-7 列始终可见。我正在考虑处理此问题的一种方法是向后循环以获取第 7、6、5、4 列,如果不存在第 3、2、1 列,则使用前一行中的先前值
2. 在第 4 列中,可能有多个值和一个或多个超链接。我需要提取文本和所有超链接以单击它们并下载附件。
如果有比硒更好的方法,请告诉我。最终输出是将此数据表和附件填充到 Excel 文件中。
Python - Selenium 代码:此代码用于按 HTML 代码 ('td') 中的每一列提取每一行数据
table = driver.find_element_by_id('table')
row = table.find_elements_by_tag_name("tr")
for rows in row:
cols = rows.find_element_by_tag_name("td")
for col in cols:
print(col.text)
我附上了我使用 Beautiful Soup 提取的 HTML 代码,让您了解表格的外观。第一个表行有 7 个“td”,但后续行没有。
好的。所以我对col代码做了以下改进。反转循环效果很好!现在我所有的超链接将始终位于第 4 列。现在我必须找出第 1-3 列来填充每一行并打开所有超链接并将它们保存到共享驱动器上的特定文件夹中。谢谢!
columncounter = 7
cols = rows.find_elements_by_tag_name("td")
for col in reversed(cols):
print('ColumnNumber = %d' %columncounter)
print(col.text)
if columncounter == 4:
colfour = col.get_attribute('innerHTML')
colfour2 = col.find_elements_by_tag_name('a')
for a in colfour2:
print(a.get_attribute('href'))
columncounter-=1
【问题讨论】:
-
请阅读为什么screenshot of HTML or code or error is a bad idea。考虑使用基于格式化文本的相关 HTML、代码试验和错误堆栈跟踪来更新问题。
标签: python-3.x selenium iframe html-table