Inspirado en solicitudes por su simplicidad y impulsado por lxml por su velocidad:
"Newspaper es una increíble biblioteca de Python para extraer y seleccionar artículos". -- tuiteado por Kenneth Reitz, autor de solicitudes
"El periódico ofrece extracción de artículos al estilo Instapaper". -- El registro de cambios
¡El periódico es una biblioteca Python3 ! O vea nuestra rama Python2 obsoleta y con errores
>>> 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)
El periódico puede extraer y detectar idiomas sin problemas . Si no se especifica ningún idioma, Newspaper intentará detectar automáticamente un 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)
港特首梁振英就住宅违建事件道歉
Si estás seguro de que toda una fuente de noticias está en un idioma, continúa y usa la misma 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利率 科鲁兹掀背金融轻松购_武汉车市_武汉汽
车网_新浪汽车_新浪网
Sólo se necesita un clic
Consulte The Docs para obtener guías completas y detalladas sobre el uso de periódicos.
¿Interesado en agregar un nuevo idioma para nosotros? Consulte: Documentos: Agregar nuevos 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
Ejecute ✅ pip3 install newspaper3k
✅
NO ⛔ pip3 install newspaper
⛔
En python3 debes instalar newspaper3k
, no newspaper
. newspaper
es nuestra biblioteca python2. Aunque instalar el periódico es sencillo con pip, te encontrarás con problemas que se pueden solucionar si intentas instalarlo en ubuntu.
Si está en Debian/Ubuntu , instálelo usando lo siguiente:
Instale el comando pip3
necesario para instalar el paquete newspaper3k
:
$ sudo apt-get instalar python3-pip
Versión de desarrollo de Python, necesaria para Python.h:
$ sudo apt-get instalar python-dev
Requisitos lxml:
$ sudo apt-get install libxml2-dev libxslt-dev
Para que PIL reconozca imágenes .jpg:
$ sudo apt-get install libjpeg-dev zlib1g-dev libpng12-dev
NOTA: Si encuentra problemas al instalar libpng12-dev
, intente instalar libpng-dev
.
Descargue corpus relacionados con PNL:
$ curl https://raw.githubusercontent.com/codelucas/newspaper/master/download_corpora.py | python3
Instalar la distribución vía pip:
$ pip3 instalar periódico3k
Si está en OSX , instálelo usando lo siguiente, puede usar tanto homebrew como macports:
$ cerveza instalar libxml2 libxslt $ cerveza instalar libtiff libjpeg webp little-cms2 $ pip3 instalar periódico3k $ curl https://raw.githubusercontent.com/codelucas/newspaper/master/download_corpora.py | python3
De lo contrario , instale con lo siguiente:
NOTA: Lo más probable es que aún necesites instalar las siguientes bibliotecas a través de tu administrador de paquetes
libjpeg-dev
zlib1g-dev
libpng12-dev
libxml2-dev
libxslt-dev
python-dev
$ pip3 instalar periódico3k $ curl https://raw.githubusercontent.com/codelucas/newspaper/master/download_corpora.py | python3
¡Sus donaciones son muy apreciadas! Me liberarán para trabajar más en este proyecto, para encargarme de cosas como: agregar nuevas funciones, soporte para corregir errores y abordar inquietudes con la biblioteca.
Si desea contribuir y modificar el proyecto del periódico, no dude en clonar una versión de desarrollo de este repositorio localmente:
git clon git://github.com/codelucas/newspaper.git
Una vez que tenga una copia de la fuente, puede incrustarla en su paquete de Python o instalarla fácilmente en los paquetes de su sitio:
$ pip3 instalar -r requisitos.txt $ python3 setup.py instalar
Siéntete libre de probar nuestro conjunto de pruebas, ¡todo es burlado!:
$ python3 pruebas/unit_tests.py
¿Planea modificar nuestro algoritmo de texto completo? Agregue el parámetro fulltext
:
$ python3 pruebas/unit_tests.py texto completo
Vea una demostración funcional en línea aquí: http://newspaper-demo.herokuapp.com
Esta es otra demostración en línea funcional: http://newspaper.chinazt.cc/
Escrito y mantenido por Lucas Ou-Yang.
Parse.ly patrocinó algunos trabajos en periódicos, específicamente centrados en la extracción automática.
El periódico utiliza mucho código de análisis de Python-goose. Vea su licencia aquí.
¡No dude en enviarme un correo electrónico y contactarme si tiene problemas o simplemente desea hablar sobre el futuro de esta biblioteca y la extracción de noticias en general!