Сканирование только контента с разных веб-сайтов. - PullRequest
1 голос
/ 16 апреля 2019

В настоящее время я работаю над проектом, в котором я хочу проанализировать различные статьи из разных блогов, журналов и т. Д., Опубликованные онлайн на их веб-сайте.

Поэтому я уже создал Webcrawler, используя Python, который выдает мне каждую новую статью в виде HTML.

Теперь вот смысл, я хочу проанализировать чистый контент (только статью, без комментариев, рекомендаций и т. Д.), Но я не могу получить доступ к этому контенту без определения регулярного выражения, чтобы извлечь контент из ответа html я получил. Регулярные выражения для каждого источника не являются альтернативой, потому что у меня есть около 100 различных источников для статей.

Я пытался использовать библиотеку html2text для извлечения контента, но библиотека преобразует только чистый HTML в уценку, так что все еще есть такие вещи, как комментарии или рекомендации, которые я должен удалить вручную.

Есть мысли, как мне справиться с этой проблемой?

1 Ответ

2 голосов
/ 16 апреля 2019

Чтобы получить основной текст статьи и игнорировать посторонний текст, вам придется написать код для определенных веб-страниц или разработать некоторую эвристику для идентификации и извлечения содержимого статьи.

К счастью, существуют библиотеки, которые адресуютэта проблема.

Газета - это библиотека Python 3:

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()
print(article.text)

Вы также можете проверить похожие библиотеки, такие как python-readability или питон-гусь :

from goose import Goose
url = 'http://edition.cnn.com/2012/02/22/world/europe/uk-occupy-london/index.html?hpt=ieu_c2'
g = Goose()
article = g.extract(url=url)
print(article.cleaned_text)
...