使用Python解析文本块

时间:2011-05-13 21:00:28

标签: python html-parsing

我正在编写一个解析网页的脚本,并将结果粘贴到MySQL中。

以下是我需要解析的HTML内容示例:

<TH ALIGN=center COLSPAN=6 BGCOLOR="#C0C0C0"><FONT SIZE="-1">Monthly Totals</FONT></TH>    </TR>
<TR><TH ALIGN=center BGCOLOR="#00805c"><FONT SIZE="-1">Hits</FONT></TH>
<TH ALIGN=center BGCOLOR="#0040ff"><FONT SIZE="-1">Files</FONT></TH>
<TH ALIGN=center BGCOLOR="#00e0ff"><FONT SIZE="-1">Pages</FONT></TH>
<TH ALIGN=center BGCOLOR="#ffff00"><FONT SIZE="-1">Visits</FONT></TH>
<TH ALIGN=center BGCOLOR="#ff8000"><FONT SIZE="-1">Sites</FONT></TH>
<TH ALIGN=center BGCOLOR="#ff0000"><FONT SIZE="-1">KBytes</FONT></TH>
<TH ALIGN=center BGCOLOR="#ffff00"><FONT SIZE="-1">Visits</FONT></TH>
<TH ALIGN=center BGCOLOR="#00e0ff"><FONT SIZE="-1">Pages</FONT></TH>
<TH ALIGN=center BGCOLOR="#0040ff"><FONT SIZE="-1">Files</FONT></TH>
<TH ALIGN=center BGCOLOR="#00805c"><FONT SIZE="-1">Hits</FONT></TH></TR>
<TR><TH HEIGHT=4></TH></TR>
<TR><TD NOWRAP><A HREF="usage_201105.html"><FONT SIZE="-1">May 2011</FONT></A></TD>
<TD ALIGN=right><FONT SIZE="-1">2529721</FONT></TD>
<TD ALIGN=right><FONT SIZE="-1">582503</FONT></TD>
<TD ALIGN=right><FONT SIZE="-1">490365</FONT></TD>
<TD ALIGN=right><FONT SIZE="-1">23301</FONT></TD>
<TD ALIGN=right><FONT SIZE="-1">17720</FONT></TD>
<TD ALIGN=right><FONT SIZE="-1">145942234</FONT></TD>
<TD ALIGN=right><FONT SIZE="-1">279618</FONT></TD>
<TD ALIGN=right><FONT SIZE="-1">5884390</FONT></TD>
<TD ALIGN=right><FONT SIZE="-1">6990042</FONT></TD>
<TD ALIGN=right><FONT SIZE="-1">30356654</FONT></TD></TR>
<TR><TD NOWRAP><A HREF="usage_201104.html"><FONT SIZE="-1">Apr 2011</FONT></A></TD>
<TD ALIGN=right><FONT SIZE="-1">2246629</FONT></TD>
<TD ALIGN=right><FONT SIZE="-1">517645</FONT></TD>
<TD ALIGN=right><FONT SIZE="-1">483787</FONT></TD>

如何调整以下内容以跟踪回车等等:

stats = re.findall ("Apr(.*)",content) 

2 个答案:

答案 0 :(得分:6)

使用BeautifulSoup正则表达式来解析HTML(参见this famous answer

答案 1 :(得分:1)

使用lxml不是正则表达式来解析HTML - 正如Will所说,但使用不同的首选工具。在我经验丰富的意见中,lxml比BeautifulSoup更强大,更强大。