У меня есть пара проблем, которые я пытаюсь решить: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)
Я приложил HTML-код, извлеченный с помощью Beautiful Soup, чтобы дать вам представление о том, как выглядит таблица.Первая строка таблицы имеет 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