【问题标题】:Python Code to get text between the table tags用于获取表格标签之间的文本的 Python 代码
【发布时间】:2013-08-22 10:01:56
【问题描述】:

我是 Python 新手,谁能帮我写代码,让我可以从标签中获取数据?

下面是表格标签,我还需要第一个表格内的表格中存在的数据:

<table width="100%" border="0" cellspacing="0" cellpadding="0">
                  <tr> 
                    <td width="7" rowspan="2">&nbsp;</td>
                    <td width='40%'> <div align="left">

                      </div>
                    <td width="7" rowspan="2">&nbsp;</td>
                  </tr>
                  <tr> 
                    <td colspan="2"> 
    <b><font face='Arial, Helvetica, sans-serif' size='2'>Account #: 8428995632 </font></b><BR><TABLE BORDER='1' width='100%' align='center' cellspacing='0'><TR><td align='left' colspan='2'><font face='Arial, Helvetica, sans-serif' size='2'><b>Billing Date:   </b><BR>07-22-2013</font></TD><td align='left' ><font face='Arial, Helvetica, sans-serif' size='2'><b>Past Due Date:    </b><BR>08-12-2013</font></TD></TR><TR><td align='left'><font face='Arial, Helvetica, sans-serif' size='2'><b>Service From: </b><BR>06-11-2013</font></TD><td align='left'><font face='Arial, Helvetica, sans-serif' size='2'><b>Service To:    </b><BR>07-11-2013</font></TD><td align='left'><font face='Arial, Helvetica, sans-serif' size='2'><b>Days of Service: </b><BR>30</font></TD></TR><TR><td align='left' colspan='2'><font face='Arial, Helvetica, sans-serif' size='2'><b>Current Charges:    </b>$30,488.60</font></TD><td align='left' ><font face='Arial, Helvetica, sans-serif' size='2'><b>Amount Due:   </b>$30,488.60</font></TD></TR></TR></TABLE><p><p><p><p><CENTER><font face='Arial, Helvetica, sans-serif' size='3'><b> Meter readings for this bill:</b></font></CENTER><TABLE BORDER='1' width='100%' align='center' cellspacing='0'><TR bgcolor='#FFF2D7'><td align='center' width='18%'><font face='Arial,Helvetica,  sans-serif' size='2'><b>Meter</b></font></TD><td align='center' width='17%'><font face='Arial, Helvetica, sans-serif' size='2'><b>Service<br>From</b></font></TD><td align='center' width='17%'><font face='Arial, Helvetica, sans-serif' size='2'><b>Service<br>To</b></font></TD><td align='center' width='12%'><font face='Arial, Helvetica, sans-serif' size='2'><b># Days</b></font></TD><td align='center' width='10%'><font face='Arial, Helvetica, sans-serif' size='2'><b>Prior<br>Read</b></font></TD><td align='center' width='10%'><font face='Arial, Helvetica, sans-serif' size='2'><b>Current<br>Read</b></font></TD><td align='center' width='16%'><font face='Arial, Helvetica, sans-serif' size='2'><b>Consumption</b></font></TD><TR><td align='center' width='8%'><font face='Arial,Helvetica,sans-serif' size='2'>S10406906</FONT></TD><td align='center' width='18%'><font face='Arial, Helvetica, sans-serif' size='2'>06-11-2013</FONT></TD><td align='center' width='12%'><font face='Arial, Helvetica, sans-serif' size='2'>07-11-2013</FONT></TD><td align='center' width='8%'><font face='Arial, Helvetica, sans-serif' size='2'>30</FONT></TD><td align='center' width='16%'><font face='Arial, Helvetica, sans-serif' size='2'>134</FONT></TD><td align='center' width='22%'><font face='Arial, Helvetica, sans-serif' size='2'>144</FONT></TD><td align='center' width='16%'><font face='Arial, Helvetica, sans-serif' size='2'>10</FONT></TD></TR></FONT><TR><td align='center' width='8%'><font face='Arial,Helvetica,sans-serif' size='2'>08400002</FONT></TD><td align='center' width='18%'><font face='Arial, Helvetica, sans-serif' size='2'>06-11-2013</FONT></TD><td align='center' width='12%'><font face='Arial, Helvetica, sans-serif' size='2'>07-11-2013</FONT></TD><td align='center' width='8%'><font face='Arial, Helvetica, sans-serif' size='2'>30</FONT></TD><td align='center' width='16%'><font face='Arial, Helvetica, sans-serif' size='2'>30748</FONT></TD><td align='center' width='22%'><font face='Arial, Helvetica, sans-serif' size='2'>32634</FONT></TD><td align='center' width='16%'><font face='Arial, Helvetica, sans-serif' size='2'>1886</FONT></TD></TR></FONT><TR><td align='center' width='8%'><font face='Arial,Helvetica,sans-serif' size='2'>S10406911</FONT></TD><td align='center' width='18%'><font face='Arial, Helvetica, sans-serif' size='2'>06-11-2013</FONT></TD><td align='center' width='12%'><font face='Arial, Helvetica, sans-serif' size='2'>07-11-2013</FONT></TD><td align='center' width='8%'><font face='Arial, Helvetica, sans-serif' size='2'>30</FONT></TD><td align='center' width='16%'><font face='Arial, Helvetica, sans-serif' size='2'>2717</FONT></TD><td align='center' width='22%'><font face='Arial, Helvetica, sans-serif' size='2'>3046</FONT></TD><td align='center' width='16%'><font face='Arial, Helvetica, sans-serif' size='2'>329</FONT></TD></TR></FONT><TR><td align='center' width='8%'><font face='Arial,Helvetica,sans-serif' size='2'>08405704</FONT></TD><td align='center' width='18%'><font face='Arial, Helvetica, sans-serif' size='2'>06-11-2013</FONT></TD><td align='center' width='12%'><font face='Arial, Helvetica, sans-serif' size='2'>07-11-2013</FONT></TD><td align='center' width='8%'><font face='Arial, Helvetica, sans-serif' size='2'>30</FONT></TD><td align='center' width='16%'><font face='Arial, Helvetica, sans-serif' size='2'>23755</FONT></TD><td align='center' width='22%'><font face='Arial, Helvetica, sans-serif' size='2'>25100</FONT></TD><td align='center' width='16%'><font face='Arial, Helvetica, sans-serif' size='2'>1345</FONT></TD></TR></FONT><TR><td align='center' width='8%'><font face='Arial,Helvetica,sans-serif' size='2'>S10406895</FONT></TD><td align='center' width='18%'><font face='Arial, Helvetica, sans-serif' size='2'>06-11-2013</FONT></TD><td align='center' width='12%'><font face='Arial, Helvetica, sans-serif' size='2'>07-11-2013</FONT></TD><td align='center' width='8%'><font face='Arial, Helvetica, sans-serif' size='2'>30</FONT></TD><td align='center' width='16%'><font face='Arial, Helvetica, sans-serif' size='2'>97</FONT></TD><td align='center' width='22%'><font face='Arial, Helvetica, sans-serif' size='2'>101</FONT></TD><td align='center' width='16%'><font face='Arial, Helvetica, sans-serif' size='2'>4</FONT></TD></TR></FONT><TR><td align='center' width='8%'><font face='Arial,Helvetica,sans-serif' size='2'>S10406893</FONT></TD><td align='center' width='18%'><font face='Arial, Helvetica, sans-serif' size='2'>06-11-2013</FONT></TD><td align='center' width='12%'><font face='Arial, Helvetica, sans-serif' size='2'>07-11-2013</FONT></TD><td align='center' width='8%'><font face='Arial, Helvetica, sans-serif' size='2'>30</FONT></TD><td align='center' width='16%'><font face='Arial, Helvetica, sans-serif' size='2'>7915</FONT></TD><td align='center' width='22%'><font face='Arial, Helvetica, sans-serif' size='2'>8406</FONT></TD><td align='center' width='16%'><font face='Arial, Helvetica, sans-serif' size='2'>491</FONT></TD></TR></FONT></TABLE><input type='hidden' name='BillId' value='842892230704'></form>

                    </td>
                  </tr>
                </table>

我使用的代码是:

print BS('table')[0].text

但这只会获取第一个表格内容。

感谢您的帮助。

【问题讨论】:

  • 再一次,不要只发布您的代码的一行,或者只是说出您的代码的257 line。尝试发布更多关于您实际需要或想要的内容的描述。从它的外观来看,会有非常简单的答案。但是由于不清楚的问题,您没有得到一个。你到底需要什么脚本来输出?

标签: python python-2.7 python-3.x beautifulsoup


【解决方案1】:

真的确定OP在这里要求什么,但这就是我从问题中得到的:

下面是表格标签,我还需要第一个表格内的表格中存在的数据:

从这句话中,我怀疑您想要外部 &lt;table&gt; 中的一行文本,以及 first 内部 &lt;table&gt; 中的文本。那里在BeautifulSoup 中有很多方法可以解决这个问题,但这种方式对我来说最有意义。

# The variable "html" contains your sample html.
font_tags = html.findAll( 'font' )

# Now we print each piece of data wrapped in a <font> tag
for font_tag in font_tags:
    # This begins the second inner table, and we don't want that.
    if font_tag.text == u" Meter readings for this bill:":
        break
    else:
        print font_tag.text

这将打印以下内容:

Account #: 8428995632 
Billing Date:   07-22-2013
Past Due Date:    08-12-2013
Service From: 06-11-2013
Service To:    07-11-2013
Days of Service: 30
Current Charges:    $30,488.60
Amount Due:   $30,488.60

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-08-16
    • 1970-01-01
    • 2016-05-13
    • 2011-03-18
    • 2016-12-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多