2009-04-22 55 views
6

我使用BeautifulSoup和urllib2來下載HTML頁面並解析它們。問題在於HTML頁面格式不正確。儘管BeautifulSoup善於處理錯誤形成的HTML,但仍不如Firefox。使用Gecko/Firefox或Webkit得到了python中的HTML解析

考慮到Firefox或Webkit在處理HTML時更具有更新性和靈活性,我認爲使用它們構建和規範化頁面的DOM樹並通過Python進行操作是理想的。

但是我找不到任何python綁定相同。任何人都可以提出一種方法

我遇到了一些運行無頭Firefox過程並通過python操縱它的解決方案,但是有更多pythonic解決方案可用。

+0

那也許是因爲你使用的是美麗的湯3.1是「做對現實世界的HTML版本相比確實3.0.7a惡化顯著」?[1] 不得不解析一些東西最近我自己發現3.0.7真的處理得更好。 使用easy_install切換到3.0.7a: sudo easy_install beautifulsoup == 3.0.7a [1] http://www.crummy.com/software/BeautifulSoup/3.1-problems.html – 2009-10-28 16:18:24

回答

1

也許pywebkitgtk會做你所需要的。

+1

不,它不會。 pywebkitgtk是「僅僅是一個頁面顯示器」。你需要http://www.gnu.org/software/pythonwebkit這是一個經過嚴格修改的版本,它包含了webkit(!)並允許訪問DOM。所有3,000個功能和所有20,000個屬性。 – user362834 2010-10-09 19:04:03

1

看到http://wiki.python.org/moin/WebBrowserProgramming

有相當多的選擇 - 我保持上面,這樣我就跟不上重複自己的頁面。

你應該看看睡衣桌面:請參閱examples/uitest示例,因爲我們完全使用這個技巧來獲取HTML頁面的「out」副本,以便通過比較python-to-javascript編譯器每個單元測試後的頁面結果。

睡衣桌面支持和使用的每個運行時都能夠訪問文檔body元素的「innerHTML」屬性(以及更多的地獄)。

底線:做你想做的事情是微不足道的,但你必須知道去哪裏尋找如何去做。

l。