HTML和Python:如何在用Python脚本编写的HTML代码中生成变量

2024-09-25 04:27:15 发布

您现在位置:Python中文网/ 问答频道 /正文

from bs4 import BeautifulSoup
import os
import re

htmlDoc="""
<html>
<body>

<table class="details" border="1" cellpadding="5" cellspacing="2" style="width:95%">
  <tr>
    <td>Roll No.</td>
    <td><b>Subject 1</b></td>       
    <td>Subject 2</td>
  </tr>
  <tr>
    <td>01</td>
    <td>Absent</td>     
    <td>Present</td>
  </tr>
  <tr>
    <td>02</td>
    <td>Absent</td>     
    <td>Absent</td>
  </tr>
</table>

</body>
</html>
"""
soup = BeautifulSoup(htmlDoc,"lxml")

#table = soup.find("table",attrs={class:"details"})



html = soup.prettify("utf-8")
with open("/home/alan/html_/output.html", "wb") as file:
    file.write(html)

我用beauthulsoup来编写HTML代码。在代码中,我要创建的变量是存在的,不存在。在某些参数发生变化时,我必须更改值,将present更改为absent,反之亦然。 我要把pesent/leave设为变量'a'。在


Tags: 代码importhtmltablebodydetailstrclass
1条回答
网友
1楼 · 发布于 2024-09-25 04:27:15

你的意思是用beauthoulsoup从python数据的某个表单构造自己的html吗?如果是这样,下面的示例可能对您有用:

from bs4 import BeautifulSoup, Tag
import os

subjects = ['subject1', 'subject2']
vals = [['absent','present'],['absent','absent']] #rows

titles = ['Roll No.'] + subjects

html = """<html>
              <body>
                  <table class="details" border="1" cellpadding="5" cellspacing="2" style="width:95%">
                  </table>
              </body>
          </html>"""
soup = BeautifulSoup(html)

#find table tag
table = soup.find('table')

#add header to table tag
tr = Tag(table, name = 'tr')
for title in titles:
    td = Tag(tr, name = 'td')
    td.insert(0, title)
    tr.append(td)
table.append(tr)

#add data to table one row at a time
for i in range(len(vals[0])):

    tr = Tag(table, name = 'tr')

    td = Tag(tr, name = 'td')
    td.string = str(i+1)
    tr.append(td)

    for val in vals[i]:
        td = Tag(tr, name = 'td')
        td.string = val
        tr.append(td)

    table.append(tr)

os.chdir(os.getcwd())
f = open('test.html','w')
f.write(soup.prettify())
f.close()

相关问题 更多 >