Вдохновлен запросами на простоту и основан на скорости lxml:
«Newspaper — это потрясающая библиотека Python для извлечения и редактирования статей». -- написал в Твиттере Кеннет Рейтц, автор запросов.
«Газета обеспечивает извлечение статей в стиле 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)
港特首梁振英就住宅违建事件道歉
Если вы уверены, что весь источник новостей написан на одном языке, используйте тот же 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利率 科鲁兹掀背金融轻松购_武汉车市_武汉汽
车网_新浪汽车_新浪网
Это займет всего один клик
Ознакомьтесь с документами, чтобы получить полные и подробные руководства по использованию газеты.
Хотите добавить для нас новый язык? См.: Документы – Добавление новых языков.
>>> 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 вы должны установить newspaper3k
, а не newspaper
. newspaper
— это наша библиотека Python2. Хотя установить газету с помощью pip просто, вы столкнетесь с устранимыми проблемами, если попытаетесь установить на Ubuntu.
Если вы используете Debian/Ubuntu , установите, используя следующее:
Установите команду pip3
необходимую для установки пакета newspaper3k
:
$ sudo apt-get установить python3-pip
Версия разработки Python, необходимая для Python.h:
$ sudo apt-get установить 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
.
Загрузите корпуса, связанные с НЛП:
$ curl https://raw.githubusercontent.com/codelucas/newspaper/master/download_corpora.py | python3
Установите дистрибутив через pip:
$ pip3 установить газету3k
Если вы используете OSX , выполните установку, используя следующее: вы можете использовать как homebrew, так и macports:
$ Brew установить libxml2 libxslt $ Brew install libtiff libjpeg webp Little-CMS2 $ pip3 установить газету3k $ curl 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 $ curl https://raw.githubusercontent.com/codelucas/newspaper/master/download_corpora.py | python3
Ваши пожертвования очень ценны! Они освободят меня для дальнейшей работы над этим проектом, для решения таких задач, как добавление новых функций, поддержка исправления ошибок, решение проблем с библиотекой.
Если вы хотите внести свой вклад и взломать проект газеты, не стесняйтесь клонировать разрабатываемую версию этого репозитория локально:
git клон git://github.com/codelucas/newspaper.git
Получив копию исходного кода, вы можете встроить ее в свой пакет Python или легко установить в пакеты своего сайта:
$ pip3 install -r требования.txt $ python3 setup.py установить
Не стесняйтесь попробовать наш набор тестов, все высмеивается!:
$ python3 тесты/unit_tests.py
Планируете настроить наш полнотекстовый алгоритм? Добавьте fulltext
параметр:
$ python3tests/unit_tests.py полный текст
Посмотреть рабочую онлайн-демо можно здесь: http://newspaper-demo.herokuapp.com.
Это еще одна рабочая онлайн-демо: http://newspaper.chinazt.cc/
Автор и поддерживается Лукас Оу-Янг.
Parse.ly спонсировал некоторые работы над газетой, в частности, посвященные автоматическому извлечению.
Газета использует много кода синтаксического анализа Python-goose. Посмотреть их лицензию можно здесь.
Пожалуйста, пишите мне по электронной почте и свяжитесь со мной, если у вас возникнут проблемы или вы просто хотите поговорить о будущем этой библиотеки и извлечении новостей в целом!