2014-10-11 146 views
2

我有一個固定的結構良好的html源碼,傳入的數據是清晰和小的,只是包含一個小的div列表。我知道使用html解析器進行html解析,但這看起來像一個特定的案例,我不知道我應該使用哪一個。下面Html解析與正則表達式

  • 數據的問題情況清晰,結構良好
  • 數據是小
  • 性能問題,應用程序必須能夠得到儘可能多的,因爲這是possibble
  • 應用程序將數據寫入到MongoDB的數據數據庫
  • 實現編程語言將是斯卡拉或Python

任何意見是有價值有啥我應該怎麼做?

回答

4

我仍然堅持使用HTML解析器,因爲至少有一個特定的數據格式和一個理解格式的專用工具。

如果性能很重要,這裏有一個非常快的lxml包。對於HTML,請使用lxml.html

你也可以使用一個真棒BeautifulSoup包和let it use lxml parser under-the-hood。此外,如果您需要解析的數據位於HTML文檔的特定部分,您可以通過要求BeautifulSoup僅解析HTML文檔的相關部分來獲得性能提升,詳情請參閱:Parsing only part of a document

而且,要遵循HTML +正則表達式線程的傳統,這裏是佔地爲什麼你不應該用來解析HTML使用正則表達式的原因參考著名的話題:

+0

我知道什麼我不應該使用正則表達式來解析HTML,我知道什麼是正則表達式,它實現時會轉變什麼,是的,我也有自動機課,大部分原因都是關於html不穩定的structres和大量的數據,這是不正確的對於我們的案例,我們有一個很好的結構和小數據來處理。所以,我感謝你的回答,但我認爲這不是我們正在尋找的。 – 2014-10-11 20:59:36

+0

@HüseyinZengin謝謝。很難說沒有看到你有什麼樣的數據,有多少數據以及你需要從中解析出哪些數據。我想你最好的選擇是自己衡量表現。例如,使用'lxml'和'regex'-only方法來實現它並對其進行基準測試。 – alecxe 2014-10-11 21:02:11