Inspiré par les demandes pour sa simplicité et alimenté par lxml pour sa rapidité :
"Newspaper est une incroyable bibliothèque Python pour extraire et organiser des articles." -- tweeté par Kenneth Reitz, auteur des demandes
"Le journal propose une extraction d'articles de style Instapaper." -- Le journal des modifications
Newspaper est une bibliothèque Python3 ! Ou consultez notre branche Python2 obsolète et boguée
>>> 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)
Le journal peut extraire et détecter les langues de manière transparente . Si aucune langue n'est spécifiée, Newspaper tentera de détecter automatiquement une langue.
>>> 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)
港特首梁振英就住宅违建事件道歉
Si vous êtes certain qu'une source d'information entière est dans une seule langue, continuez et utilisez la même 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利率 科鲁兹掀背金融轻松购_武汉车市_武汉汽
车网_新浪汽车_新浪网
Cela ne prend qu'un seul clic
Consultez The Docs pour des guides complets et détaillés utilisant le journal.
Intéressé à ajouter une nouvelle langue pour nous ? Reportez-vous à : Docs – Ajout de nouvelles langues
>>> 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
Exécutez ✅ pip3 install newspaper3k
✅
PAS ⛔ pip3 install newspaper
⛔
Sur python3, vous devez installer newspaper3k
, pas newspaper
. newspaper
est notre bibliothèque python2. Bien que l'installation du journal soit simple avec pip, vous rencontrerez des problèmes réparables si vous essayez de l'installer sur Ubuntu.
Si vous êtes sur Debian/Ubuntu , installez en utilisant ce qui suit :
Commande d'installation pip3
nécessaire pour installer le package newspaper3k
:
$ sudo apt-get install python3-pip
Version de développement Python, nécessaire pour Python.h :
$ sudo apt-get install python-dev
Exigences lxml :
$ sudo apt-get install libxml2-dev libxslt-dev
Pour que PIL reconnaisse les images .jpg :
$ sudo apt-get install libjpeg-dev zlib1g-dev libpng12-dev
REMARQUE : Si vous rencontrez un problème lors de l'installation libpng12-dev
, essayez d'installer libpng-dev
.
Téléchargez les corpus liés à la PNL :
$ curl https://raw.githubusercontent.com/codelucas/newspaper/master/download_corpora.py | python3
Installez la distribution via pip :
$ pip3 installer journal3k
Si vous êtes sous OSX , installez en utilisant ce qui suit, vous pouvez utiliser à la fois homebrew ou macports :
$ Brew installer libxml2 libxslt $ Brew install libtiff libjpeg webp little-cms2 $ pip3 installer journal3k $ curl https://raw.githubusercontent.com/codelucas/newspaper/master/download_corpora.py | python3
Sinon , installez avec ce qui suit :
REMARQUE : vous devrez probablement installer les bibliothèques suivantes via votre gestionnaire de packages.
libjpeg-dev
zlib1g-dev
libpng12-dev
libxml2-dev
libxslt-dev
python-dev
$ pip3 installer journal3k $ curl https://raw.githubusercontent.com/codelucas/newspaper/master/download_corpora.py | python3
Vos dons sont grandement appréciés! Ils me libéreront pour travailler davantage sur ce projet, pour entreprendre des tâches telles que : l'ajout de nouvelles fonctionnalités, la prise en charge des corrections de bugs, la résolution des problèmes liés à la bibliothèque.
Si vous souhaitez contribuer et pirater le projet de journal, n'hésitez pas à cloner localement une version de développement de ce référentiel :
git clone git://github.com/codelucas/newspaper.git
Une fois que vous avez une copie de la source, vous pouvez l'intégrer dans votre package Python ou l'installer facilement dans vos packages de site :
$ pip3 install -r exigences.txt $ python3 setup.py installer
N'hésitez pas à essayer notre suite de tests, tout est moqué ! :
$ python3 tests/unit_tests.py
Vous envisagez de peaufiner notre algorithme de texte intégral ? Ajoutez le paramètre fulltext
:
$ python3 tests/unit_tests.py texte intégral
Regardez une démo en ligne fonctionnelle ici : http://newspaper-demo.herokuapp.com
Ceci est une autre démo en ligne fonctionnelle : http://newspaper.chinazt.cc/
Rédigé et maintenu par Lucas Ou-Yang.
Parse.ly a sponsorisé certains travaux sur les journaux, spécifiquement axés sur l'extraction automatique.
Le journal utilise beaucoup de code d'analyse de python-goose. Consultez leur licence ici.
N'hésitez pas à m'envoyer un e-mail et à me contacter si vous rencontrez des problèmes ou si vous souhaitez simplement parler de l'avenir de cette bibliothèque et de l'extraction d'actualités en général !