"建立HTML表格线至Python"

2024-10-06 06:50:01 发布

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

比方说,我有这样一个HTML表:

<tr>
  <td class="Klasse gerade">12A<br></td>
  <td class="Stunde gerade">4<br></td>
  <td class="Fach gerade">GEO statt GE<br></td>
  <td class="Lehrer gerade"><br></td>
  <td class="Vertretung gerade">Herr Grieger<br></td>
  <td class="Raum gerade">603<br></td>
  <td class="Anmerkung gerade"><br></td>
</tr>
<tr>
  <td class="Klasse gerade">10A<br></td>
  <td class="Stunde gerade">2<br></td>
  <td class="Fach gerade">MA statt GE<br></td>
  <td class="Lehrer gerade"><br></td>
  <td class="Vertretung gerade">Herr Grieger<br></td>
  <td class="Raum gerade">406<br></td>
  <td class="Anmerkung gerade"><br></td>
</tr>

如果将HTML转换为python(2.7)时使用:

link = "http://www.test.com/vplan.html"
f = urllib.urlopen(link)
vplan = f.read()
print vplan

我该怎么做?:如果td=10A那么打印10A的完整tr

抱歉,我的措辞不好,但在我看来,最简单的方法就是解释我的问题,不要怀疑德语单词的意思(我是德国人)


Tags: brhtmltrclasstdgeklasseherr
1条回答
网友
1楼 · 发布于 2024-10-06 06:50:01

您需要一个类似于Beautifulsoup的HTML解析器。假设所讨论的表是文档中唯一的表或第一个表,则程序可能如下所示:

#!/usr/bin/env python
import urllib
from bs4 import BeautifulSoup


def main():
    link = 'http://www.test.com/vplan.html'
    soup = BeautifulSoup(urllib.urlopen(link), 'lxml')
    table = soup.find('table')
    rows = [x.find_parent('tr') for x in table.find_all(text='10A')]
    for row in rows:
        for cell in row.find_all('td'):
            print cell.text
        print '-' * 10

相关问题 更多 >