Inspirado em requests por sua simplicidade e desenvolvido em lxml por sua velocidade:
"O jornal é uma biblioteca python incrível para extrair e selecionar artigos." - tweetado por Kenneth Reitz, autor dos pedidos
"Jornal oferece extração de artigos no estilo Instapaper." - O registro de alterações
Jornal é uma biblioteca Python3 ! Ou veja nosso branch Python2 obsoleto e cheio de bugs
>>> 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)
O jornal pode extrair e detectar idiomas perfeitamente . Se nenhum idioma for especificado, o Newspaper tentará detectar automaticamente um idioma.
>>> 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)
港特首梁振英就住宅违建事件道歉
Se você tem certeza de que uma fonte de notícias inteira está em um idioma, vá em frente e use a mesma 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利率 科鲁兹掀背金融轻松购_武汉车市_武汉汽
车网_新浪汽车_新浪网
Leva apenas um clique
Confira The Docs para guias completos e detalhados sobre o uso de jornais.
Interessado em adicionar um novo idioma para nós? Consulte: Documentos - Adicionando novos idiomas
>>> 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
Execute ✅ pip3 install newspaper3k
✅
NÃO ⛔ pip3 install newspaper
⛔
No python3 você deve instalar newspaper3k
, não newspaper
. newspaper
é nossa biblioteca python2. Embora instalar o jornal seja simples com o pip, você encontrará problemas corrigíveis se estiver tentando instalar no Ubuntu.
Se você estiver no Debian/Ubuntu , instale usando o seguinte:
Instale o comando pip3
necessário para instalar o pacote newspaper3k
:
$ sudo apt-get install python3-pip
Versão de desenvolvimento Python, necessária para Python.h:
$ sudo apt-get install python-dev
Requisitos lxml:
$ sudo apt-get install libxml2-dev libxslt-dev
Para que o PIL reconheça imagens .jpg:
$ sudo apt-get instalar libjpeg-dev zlib1g-dev libpng12-dev
NOTA: Se você encontrar problemas ao instalar libpng12-dev
, tente instalar libpng-dev
.
Baixe corpora relacionados à PNL:
$ curl https://raw.githubusercontent.com/codelucas/newspaper/master/download_corpora.py | python3
Instale a distribuição via pip:
$ pip3 instalar jornal3k
Se você estiver no OSX , instale usando o seguinte, você pode usar homebrew ou macports:
$ brew instalar libxml2 libxslt $ brew install libtiff libjpeg webp little-cms2 $ pip3 instalar jornal3k $ curl https://raw.githubusercontent.com/codelucas/newspaper/master/download_corpora.py | python3
Caso contrário , instale com o seguinte:
NOTA: Você provavelmente ainda precisará instalar as seguintes bibliotecas através do seu gerenciador de pacotes
libjpeg-dev
zlib1g-dev
libpng12-dev
libxml2-dev
libxslt-dev
python-dev
$ pip3 instalar jornal3k $ curl https://raw.githubusercontent.com/codelucas/newspaper/master/download_corpora.py | python3
Suas doações são muito apreciadas! Eles vão me liberar para trabalhar mais neste projeto, para assumir coisas como: adicionar novos recursos, suporte para correção de bugs, resolver problemas com a biblioteca.
Se você quiser contribuir e hackear o projeto do jornal, sinta-se à vontade para clonar localmente uma versão de desenvolvimento deste repositório:
git clone git://github.com/codelucas/newspaper.git
Depois de ter uma cópia do código-fonte, você pode incorporá-lo em seu pacote Python ou instalá-lo facilmente em seus pacotes de sites:
$ pip3 instalar -r requisitos.txt $ python3 setup.py instalar
Sinta-se à vontade para experimentar nosso conjunto de testes, tudo é ridicularizado!:
$ python3 testes/unit_tests.py
Planejando ajustar nosso algoritmo de texto completo? Adicione o parâmetro fulltext
:
$ python3 testes/unit_tests.py texto completo
Veja uma demonstração online funcional aqui: http://newspaper-demo.herokuapp.com
Esta é outra demonstração online funcional: http://newspaper.chinazt.cc/
De autoria e manutenção de Lucas Ou-Yang.
Parse.ly patrocinou alguns trabalhos em jornais, focados especificamente na extração automática.
O jornal usa muito código de análise do python-goose. Veja sua licença aqui.
Sinta-se à vontade para enviar um e-mail e entrar em contato comigo se tiver problemas ou apenas quiser falar sobre o futuro desta biblioteca e extração de notícias em geral!