Проблема с кэшем в газетном питоне, каждый вызов одинаковый - PullRequest
0 голосов
/ 23 января 2019

Я использую этот модуль: https://github.com/codelucas/newspaper для загрузки статей о биткойнах из https://news.bitcoin.com/. Но когда я пытаюсь получить следующие статьи со следующей страницы 'https://news.bitcoin.com/page/2/page', я получаю тот же вывод.То же самое для любой другой страницы.

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

import newspaper

url = 'https://news.bitcoin.com/page/2'
btc_articles = newspaper.build(url, memoize_articles = False)

for article in btc_articles.articles:
    print(article.url)

1 Ответ

0 голосов
/ 24 января 2019

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

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

import newspaper

url = 'https://news.bitcoin.com/'
btc_paper = newspaper.build(url, memoize_articles = False)

print('Categories:', [category.url for category in btc_paper.categories])
print('Feeds:', [feed.url for feed in btc_paper.feeds])

Выход:

Categories: ['https://news.bitcoin.com/page/2', 'https://news.bitcoin.com']
Feeds: []

Похоже, что это ошибка в коде (или плохой дизайн сайта в части биткойнов в зависимости от того, как вы на это смотрите), как вы отметили в своем отчете о проблемах https://github.com/codelucas/newspaper/issues/670.

...