Библиотека: газета (Newspaper3k) пытается разобрать ссылки с главной страницы сайта новостей (источник) - PullRequest
0 голосов
/ 28 февраля 2019

Я пытаюсь проанализировать набор ссылок, созданных с помощью библиотеки Python, которая называется Газета

Цель:

Чтобы проанализировать каждую ссылку с главной страницы (или конкретная страница, такая как категория) новостного сайта.

Проблема:

  1. Я генерирую AttributeError при попытке передать ссылку article_link в метод Article ().
  2. Используя отдельный код для анализа одной ссылки из «Нью-Йорк Таймс», напечатанный текст не печатает всю статью.

Проблема создания кода 1:

import newspaper
from newspaper import Article

nyt_paper = newspaper.build(
    'http://nytimes.com/section/todayspaper', memoize_articles=False)
print(nyt_paper.size())

processed_link_list = []
for article_link in nyt_paper.articles:
    article = Article(url=article_link)
    article.download()
    article.html
    article.parse()
    print(article.authors)
    processed_link_list.append(article_link)

if len(nyt_paper.size()) is len(processed_link_list):
    print('All Links Processed')
else:
    print('All Links **NOT** Processed')

Вывод ошибки:

Traceback (most recent call last):
  File "nyt_today.py", line 31, in <module>
    article = Article(url=article_link)
  File "C:\...\lib\site-packages\newspaper\article.py", line 60, in __init__
    scheme = urls.get_scheme(url)
  File "C:\...\lib\site-packages\newspaper\urls.py", line 279, in get_scheme
    return urlparse(abs_url, **kwargs).scheme
  File "C:\...\lib\urllib\parse.py", line 367, in urlparse
    url, scheme, _coerce_result = _coerce_args(url, scheme)
  File "C:\...\lib\urllib\parse.py", line 123, in _coerce_args
    return _decode_args(args) + (_encode_result,)
  File "C:\...\lib\urllib\parse.py", line 107, in _decode_args
    return tuple(x.decode(encoding, errors) if x else '' for x in args)
  File "C:\...\lib\urllib\parse.py", line 107, in <genexpr>
    return tuple(x.decode(encoding, errors) if x else '' for x in args)
AttributeError: 'Article' object has no attribute 'decode'

Проблема создания кода 2:

from newspaper import Article
from newspaper import fulltext
import requests

nyt_url = 'https://www.nytimes.com/2019/02/26/opinion/trump-kim-vietnam.html'
article = Article(nyt_url)
article.download()
print(article.html)
article.parse()
print(article.authors)
print(article.text)

Я также пытался использовать этот метод «полный текст», приведенный в документации для печати текста:

article_html = requests.get(nyt_url).text
full_text = fulltext(article_html)
print(full_text)

Однако, хотя текст статьи Весь выводится в

print(article.html)

,

print(article.text)

не печатает все это.Исходную ссылку, вывод HTML и вывод печатного текста можно увидеть ниже:

Ссылка: https://www.nytimes.com/2019/02/26/opinion/trump-kim-vietnam.html

Вывод Html: см. Эту вставку для усеченного вывода

Печатный текст: см. Этот печатный текст не печатает всю статью

Любая помощь будет принята с благодарностью.

...