我有一个内部网站,会每天发布最新的统计数据。 该网站提供有关许多公司的信息。我需要获得一个公司的数据。 HTML代码如下:
注意:所有文字值,例如" Big Company A"," 1810"," 14"," 2045" ," 135"," 98.8%"," 100.0%"都需要输出。
* 注意2:同一页面中有许多公司列表,它们都具有相同的结构。对我来说问题是,如何找到" Big Company A",并输出所有Text值属于Big Company A?
<TH class=Company><A href="?scope=1&values=1&deleg=35">Big Company A</A></TH>
<TD>1810</TD>
<TD>14</TD>
<TD>2045</TD>
<TD>135</TD>
<TD class=ok><A class=ok href="av_report.php?deleg=35&dc=%&ou=%&bu=%&site=%">99.8%</A></TD>
<TD class=ok><A class=ok href="av_report.php?deleg=35&dc=%&ou=%&bu=%&site=%">100.0%</A></TD>
<TD class=ok><A class=ok href="hips_report.php?deleg=35&dc=%&ou=%&bu=%&site=%">100.0%</A></TD>
<TD class=ok><A class=ok href="hips_report.php?deleg=35&dc=%&ou=%&bu=%&site=%">98.8%</A></TD>
<TD class=ok><A class=ok href="os_reportbyou.php?deleg=35&dc=%&ou=%&bu=%&site=%&server=0&counts=1">100.0%</A></TD>
<TD class=ok><A class=ok href="os_reportbyou.php?deleg=35&dc=%&ou=%&bu=%&site=%&server=1&counts=1">100.0%</A></TD>
<TD class=ok><A class=ok href="pa_reportbydelegs.php?deleg=35&dc=%&ou=%&bu=%&site=%">95.7%</A></TD>
<TD class=ok><A class=ok href="pa_reportbydelegs.php?deleg=35&dc=%&ou=%&bu=%&site=%">97.6%</A></TD>
<TD class=ok><A class=ok href="pa_reportbydelegs4.php?deleg=35&dc=%&ou=%&bu=%&site=%">104.8%</A></TD>
<TD class=ok><A class=ok href="pa_reportbydelegs4.php?deleg=35&dc=%&ou=%&bu=%&site=%">104.2%</A></TD>
<TD class=ok><A class=ok href="pa_reportbydelegs4.php?deleg=35&dc=%&ou=%&bu=%&site=%">99.9%</A></TD>
很抱歉,我对Python和HTML知之甚少,感谢您的帮助
修改记事 @ 2014/04/02,附上一条关于如何找到&#34; Big Company A&#39;的评论。
答案 0 :(得分:1)
我不完全确定你想要的输出代码是什么。您希望它是标记中包含的所有值,还是只是您在问题中写入的值?
如果是前者,那么您可以轻松使用BeautifulSoup来获取所有数据。
html = #your html
soup = BeautifulSoup(html)
list = soup.findAll("td")
for thing in list:
print list.text
我没有检查过这段代码,所以如果它不起作用,请告诉我。
答案 1 :(得分:1)
使用BeautifulSoup解析器,遍历页面上的每个标记并获取文本:
from bs4 import BeautifulSoup
data = """
<TH class="Company">
<A href="?scope=1&values=1&deleg=35">Big Company A</A>
</TH>
<TD>1810</TD>
<TD>14</TD>
<TD>2045</TD>
<TD>135</TD>
<TD class=ok><A class=ok href="av_report.php?deleg=35&dc=%&ou=%&bu=%&site=%">99.8%</A></TD>
<TD class=ok><A class=ok href="av_report.php?deleg=35&dc=%&ou=%&bu=%&site=%">100.0%</A></TD>
<TD class=ok><A class=ok href="hips_report.php?deleg=35&dc=%&ou=%&bu=%&site=%">100.0%</A></TD>
<TD class=ok><A class=ok href="hips_report.php?deleg=35&dc=%&ou=%&bu=%&site=%">98.8%</A></TD>
<TD class=ok><A class=ok href="os_reportbyou.php?deleg=35&dc=%&ou=%&bu=%&site=%&server=0&counts=1">100.0%</A></TD>
<TD class=ok><A class=ok href="os_reportbyou.php?deleg=35&dc=%&ou=%&bu=%&site=%&server=1&counts=1">100.0%</A></TD>
<TD class=ok><A class=ok href="pa_reportbydelegs.php?deleg=35&dc=%&ou=%&bu=%&site=%">95.7%</A></TD>
<TD class=ok><A class=ok href="pa_reportbydelegs.php?deleg=35&dc=%&ou=%&bu=%&site=%">97.6%</A></TD>
<TD class=ok><A class=ok href="pa_reportbydelegs4.php?deleg=35&dc=%&ou=%&bu=%&site=%">104.8%</A></TD>
<TD class=ok><A class=ok href="pa_reportbydelegs4.php?deleg=35&dc=%&ou=%&bu=%&site=%">104.2%</A></TD>
<TD class=ok><A class=ok href="pa_reportbydelegs4.php?deleg=35&dc=%&ou=%&bu=%&site=%">99.9%</A></TD>
</TH>
"""
soup = BeautifulSoup(data)
for tag in soup:
print tag.text
打印:
Big Company A
1810
14
2045
135
99.8%
100.0%
100.0%
98.8%
100.0%
100.0%
95.7%
97.6%
104.8%
104.2%
99.9%