2012-02-19 76 views
3

我正在使用python構建一個應用程序,它涉及從RSS提要獲取新聞文章。作爲我的項目的一部分,我決定使用boilerpipe來從文章出現的html頁面中提取文章內容。在python中導入鍋爐時遇到問題

儘管boilerpipe最初是爲java編寫的,但它也已被移植到python。你可以在這裏看到在github上其頁:https://github.com/misja/python-boilerpipe

的問題是,我嘗試使用導入它時,會得到一個異常:

from boilerpipe.extract import Extractor 

我得到的錯誤是:

Traceback (most recent call last): 
File "", line 1, in 
File "build\bdist.win32\egg\boilerpipe\extract__init__.py", line 12, in 
File "C:\Python26\lib\site-packages\jpype_jclass.py", line 54, in JClass 
raise _RUNTIMEEXCEPTION.PYEXC("Class %s not found" % name) 
jpype._jexception.ExceptionPyRaisable: java.lang.Exception: Class 
de.l3s.boilerpipe.sax.HTMLHighlighter not found 

什麼可能會導致這個問題,我該如何解決它?

+0

你可以解析feed使用純Python [feedparser模塊](http://packages.python.org/feedparser/introduction.html) – jfs 2012-02-19 19:48:57

+0

@JFSebastian謝謝。我實際上已經使用feedparser來實際獲取文章(以及它們的url)。 一旦我得到一篇文章,然後我想從其頁面中提取文章內容(不包括側邊欄,菜單和其他隨機文本)。 根據我的研究,鍋爐似乎是最好的方式。不幸的是,我遇到了上面提到的將它導入python的問題。 – user1106610 2012-02-19 19:58:27

回答

0

找不到類別HTMLHighlighter。你有沒有設置你的JAVA_HOMEThe documentation指出:

由於jpype依賴於此設置,因此一定要正確設置JAVA_HOME。

+0

感謝您的回答。我確信我已經做到了正確。我創建了一個JAVA_HOME系統變量,並將它的值設置爲「C:\ Program Files \ Java \ jdk1.7.0」,這是我很確定它應該是。 – user1106610 2012-02-19 19:19:44

+0

只是爲了澄清;我的意思是說我已經完成了上述工作,但儘管如此,它仍然無法正常工作。 – user1106610 2012-02-19 19:29:26

+0

我花了數小時試圖讓這個工作現在。但仍然沒有運氣。 – user1106610 2012-02-19 21:10:38

1

以下爲我工作最好的:

git clone https://github.com/misja/python-boilerpipe.git 
cd python-boilerpipe 
sudo python setup.py install 

您可能需要:

  • 安裝JPype(命令和apt - 在Ubuntu上安裝python-jpype)
  • install charade(sudo pip install charade)

但是,您不必安裝boilerpipe JAVA jar的安裝程序,因爲安裝程序會爲您加載。

我嘗試從pip安裝python boilerpipe,但沒有運氣。我成功地運行了樣板java代碼,但不斷得到這個相同的錯誤。

+0

請注意,Ubuntu的jpype apt包只安裝它用於Python 2.要安裝Python3,我必須使用它(請參閱源代碼):https://pypi.python.org/pypi/JPype1-py3 – sudo 2017-01-27 22:22:19

3

這爲我工作在Mac OS X 10.8.5與Python 2.7.9:

pip install JPype1 # to install https://pypi.python.org/pypi/JPype1 
pip install charade 
git clone https://github.com/misja/python-boilerpipe.git 
cd python-boilerpipe 
sudo python setup.py install 

那麼你應該能夠在Python控制檯執行

>>> from boilerpipe.extract import Extractor 
>>> extractor = Extractor(extractor='ArticleExtractor', url="http://en.wikipedia.org/wiki/Main_Page") 
>>> print extractor.getText()