シンプルさを求めるリクエストにインスピレーションを受け、高速性を実現する lxml を利用しています。
「Newspaper は、記事を抽出してキュレーションするための素晴らしい Python ライブラリです。」 -- リクエスト作成者 Kenneth Reitz がツイート
「新聞は Instapaper スタイルの記事抽出を配信します。」 -- 変更履歴
新聞は Python3 ライブラリです!または、非推奨でバグの多いPython2 ブランチを参照してください。
>>> from newspaper import Article
>>> url = ' http://fox13now.com/2013/12/30/new-year-new-laws-obamacare-pot-guns-and-drones/ '
>>> article = Article(url)
>>> article.download()
>>> article.html
'<!DOCTYPE HTML><html itemscope itemtype="http://...'
>>> article.parse()
>>> article.authors
['Leigh Ann Caldwell', 'John Honway']
>>> article.publish_date
datetime.datetime(2013, 12, 30, 0, 0)
>>> article.text
'Washington (CNN) -- Not everyone subscribes to a New Year's resolution...'
>>> article.top_image
'http://someCDN.com/blah/blah/blah/file.png'
>>> article.movies
['http://youtube.com/path/to/link.com', ...]
>>> article.nlp()
>>> article.keywords
['New Years', 'resolution', ...]
>>> article.summary
'The study shows that 93% of people ...'
>>> import newspaper
>>> cnn_paper = newspaper.build( ' http://cnn.com ' )
>>> for article in cnn_paper.articles:
>>> print (article.url)
http://www.cnn.com/2013/11/27/justice/tucson-arizona-captive-girls/
http://www.cnn.com/2013/12/11/us/texas-teen-dwi-wreck/index.html
...
>>> for category in cnn_paper.category_urls():
>>> print (category)
http://lifestyle.cnn.com
http://cnn.com/world
http://tech.cnn.com
...
>>> cnn_article = cnn_paper.articles[ 0 ]
>>> cnn_article.download()
>>> cnn_article.parse()
>>> cnn_article.nlp()
...
>>> from newspaper import fulltext
>>> html = requests.get( ... ).text
>>> text = fulltext(html)
新聞は言語をシームレスに抽出して検出できます。言語が指定されていない場合、Newspaper は言語の自動検出を試みます。
>>> from newspaper import Article
>>> url = ' http://www.bbc.co.uk/zhongwen/simp/chinese_news/2012/12/121210_hongkong_politics.shtml '
>>> a = Article(url, language = ' zh ' ) # Chinese
>>> a.download()
>>> a.parse()
>>> print (a.text[: 150 ])
香港行政长官梁振英在各方压力下就其大宅的违章建
筑(僭建)问题到立法会接受质询,并向香港民众道歉。
梁振英在星期二(12月10日)的答问大会开始之际
在其演说中道歉,但强调他在违章建筑问题上没有隐瞒的
意图和动机。 一些亲北京阵营议员欢迎梁振英道歉,
且认为应能获得香港民众接受,但这些议员也质问梁振英有
>>> print (a.title)
港特首梁振英就住宅违建事件道歉
ニュース ソース全体が 1 つの言語であることが確実な場合は、同じ API を使用してください :)
>>> import newspaper
>>> sina_paper = newspaper.build( ' http://www.sina.com.cn/ ' , language = ' zh ' )
>>> for category in sina_paper.category_urls():
>>> print (category)
http://health.sina.com.cn
http://eladies.sina.com.cn
http://english.sina.com
...
>>> article = sina_paper.articles[ 0 ]
>>> article.download()
>>> article.parse()
>>> print (article.text)
新浪武汉汽车综合 随着汽车市场的日趋成熟,
传统的“集全家之力抱得爱车归”的全额购车模式已然过时,
另一种轻松的新兴 车模式――金融购车正逐步成为时下消费者购
买爱车最为时尚的消费理念,他们认为,这种新颖的购车
模式既能在短期内
...
>>> print (article.title)
两年双免0手续0利率 科鲁兹掀背金融轻松购_武汉车市_武汉汽
车网_新浪汽车_新浪网
ワンクリックだけで完了します
新聞を使用した完全かつ詳細なガイドについては、The Docs を参照してください。
新しい言語を追加することに興味がありますか?参照: ドキュメント - 新しい言語の追加
>>> import newspaper
>>> newspaper.languages()
Your available languages are:
input code full name
ar Arabic
be Belarusian
bg Bulgarian
da Danish
de German
el Greek
en English
es Spanish
et Estonian
fa Persian
fi Finnish
fr French
he Hebrew
hi Hindi
hr Croatian
hu Hungarian
id Indonesian
it Italian
ja Japanese
ko Korean
lt Lithuanian
mk Macedonian
nb Norwegian (Bokmål)
nl Dutch
no Norwegian
pl Polish
pt Portuguese
ro Romanian
ru Russian
sl Slovenian
sr Serbian
sv Swedish
sw Swahili
th Thai
tr Turkish
uk Ukrainian
vi Vietnamese
zh Chinese
実行 ✅ pip3 install newspaper3k
✅
ではありません ⛔ pip3 install newspaper
⛔
Python3 では、 newspaper
ではなく、 newspaper3k
をインストールする必要があります。 newspaper
私たちのPython2ライブラリです。 pip を使用すると新聞のインストールは簡単ですが、ubuntu にインストールしようとすると修正可能な問題に遭遇します。
Debian / Ubuntu を使用している場合は、次を使用してインストールします。
newspaper3k
パッケージをインストールするために必要なpip3
コマンドをインストールします。
$ sudo apt-get インストール python3-pip
Python 開発バージョン、Python.h に必要:
$ sudo apt-get install python-dev
lxml の要件:
$ sudo apt-get install libxml2-dev libxslt-dev
PIL が .jpg 画像を認識するには:
$ sudo apt-get install libjpeg-dev zlib1g-dev libpng12-dev
注: libpng12-dev
のインストールで問題が発生した場合は、 libpng-dev
インストールしてみてください。
NLP 関連のコーパスをダウンロードします。
$カール https://raw.githubusercontent.com/codelucas/newspaper/master/download_corpora.py | Python3
pip 経由でディストリビューションをインストールします。
$ pip3 新聞 3k をインストール
OSX を使用している場合は、以下を使用してインストールします。homebrew または macports の両方を使用できます。
$ brew install libxml2 libxslt $ brew install libtiff libjpeg webp little-cms2 $ pip3 新聞 3k をインストール $カール https://raw.githubusercontent.com/codelucas/newspaper/master/download_corpora.py | Python3
それ以外の場合は、次のようにインストールします。
注: パッケージ マネージャーを介して次のライブラリをインストールする必要がある可能性があります。
libjpeg-dev
zlib1g-dev
libpng12-dev
libxml2-dev
libxslt-dev
python-dev
$ pip3 新聞 3k をインストール $カール https://raw.githubusercontent.com/codelucas/newspaper/master/download_corpora.py | Python3
ご寄付をお待ちしております。彼らは私をこのプロジェクトにもっと取り組み、新機能の追加、バグ修正のサポート、ライブラリの問題への対処などに取り組むことができるようにしてくれるでしょう。
新聞プロジェクトに貢献してハッキングしたい場合は、このリポジトリの開発バージョンをローカルに自由に複製してください。
git clone git://github.com/codelucas/newspaper.git
ソースのコピーを取得したら、それを Python パッケージに埋め込んだり、サイト パッケージに簡単にインストールしたりできます。
$ pip3 install -r 要件.txt $ python3 setup.py インストール
テスト スイートを自由に試してみてください。すべてが模擬されています。:
$ python3テスト/unit_tests.py
フルテキスト アルゴリズムを微調整する予定ですか? fulltext
パラメータを追加します。
$ python3 テスト/unit_tests.py フルテキスト
動作するオンライン デモはこちらでご覧いただけます: http://newspaper-demo.herokuapp.com
これは別の動作するオンライン デモです: http://newspaper.chinazt.cc/
Lucas Ou-Yang によって作成および保守されています。
Parse.ly は、特に自動抽出に焦点を当てた、新聞に関するいくつかの取り組みを後援しました。
新聞は python-goose の解析コードを大量に使用しています。ここでライセンスを確認してください。
問題が発生した場合、またはこのライブラリとニュース抽出全般の将来について話したい場合は、お気軽にメールしてご連絡ください。