Проблема с кэшем в газетном питоне, каждый вызов одинаковый

Я использую этот модуль: 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 ответ

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

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

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

Другие вопросы по тегам