2011-05-13 64 views
-1

我正在編寫一個腳本來解析網頁,並將結果粘貼到MySQL中。使用Python解析文本塊

這裏是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) 
+0

你想要什麼? _「等等」_有點短,要很好理解 – eyquem 2011-05-13 21:18:32

+3

「男性」忽略了使用這個網站的一半人。 – 2011-05-13 21:26:22

回答

1

使用lxml,而不是正則表達式來分析HTML--正如Will所說,但是使用了不同的首選工具。在我的經驗觀點中,lxml比BeautifulSoup更強大和更強大。

+0

啊。我沒有使用lxml的HTML解析...它是因爲BeautifulSoup是不好的標記寬容嗎?我通常建議人們從BeautifulSoup開始,因爲a)它是一個自包含的Python文件,並且b)它能夠解析嚴重破壞的HTML,並做出體面的工作。 – 2011-05-16 20:53:52

+0

@Will lxml實際上可以更好地利用HTML湯,你可以在這裏瞭解更多:http://lxml.de/elementsoup.html他們說這取決於輸入 - 我說一般情況下,lxml表現更好。 – Henry 2011-05-16 21:25:28

+0

不錯,我必須記住這一點。 – 2011-05-17 15:23:01