Я пытаюсь создать HTML-страницу, содержащую таблицу со строками информации (тесты, ошибки, предупреждение, общее количество тестов)
Я хочу, чтобы каждая строка в столбце «Тестовые случаи» была ссылкой на другую страницу.
Как вы видите на изображении ниже, моя цель, чтобы Тест 1 был ссылкой .
Ниже приведен код, который я написал, чтобы построить то, что вы видите на картинке.
Спасибо.
import bs4
f = open("practice.html", 'w')
html = """<html>
<body>
<table class="details" border="1" cellpadding="5" cellspacing="2" style="width:95%">
</table>
</body>
</html>"""
soup = bs4.BeautifulSoup(html, "lxml")
table = soup.find('table')
tr = bs4.Tag(table, name='tr')
HTMLColumns = ["Test Cases", "Failed", "Warning", "Total number of tests"]
for title in HTMLColumns: # Add titles to each column
td = bs4.Tag(tr, name='td')
td.insert(0, title)
td.attrs['style'] = 'background-color: #D6FCE9; font-weight: bold;'
tr.append(td)
table.append(tr)
results = ["Test 1", str(5), str(3), str(6)]
tr = bs4.Tag(table, name='tr')
for index, r in enumerate(results): # loop through whole list of issue tuples, and create rows
td = bs4.Tag(tr, name='td')
td.attrs['style'] = 'background-color: #ffffff; font-weight: bold;'
td.string = str(r)
tr.append(td)
table.append(tr)
f.write(soup.prettify())
f.close()
Ниже приведен код для создания ссылки, который я взял из документации BeautifulSoup:
from bs4 import BeautifulSoup
soup = BeautifulSoup("<b></b>", "lxml")
original_tag = soup.b
new_tag = soup.new_tag("a", href="http://www.example.com")
original_tag.append(new_tag)
original_tag
# <b><a href="http://www.example.com"></a></b>
new_tag.string = "Link text."
original_tag
# <b><a href="http://www.example.com">Link text.</a></b>
f = open("practice.html", 'w')
f.write(soup.prettify())
f.close()