Газета Python с веб-архивом (машина обратного хода)
Я пытаюсь использовать библиотеку газет python (импортировать газету...) с интернет-архивом ( http://www.archive.org/), в котором хранятся старые версии веб-сайтов. Теоретически это может позволить загружать очень старые новостные статьи.
Так, например,
import newspaper
url = 'http://web.archive.org/web/20161201123529/http://www.cnbc.com/'
paper = newspaper.build(url, memoize_articles = False )
Хотя сам сайт содержит ссылки на актуальные новостные статьи за 2016-12-01, газетный модуль, похоже, не подхватывает их. Вместо этого вы получаете URL, такие как
https://blog.archive.org/2016/10/23/defining-web-pages-web-sites-and-web-captures/
которые не являются актуальными статьями из этой заархивированной версии CNBC. Тем не менее, газета прекрасно работает с сегодняшней версией http://cnbc.com/.
Я полагаю, что это путается из-за формата URL (который содержит два http
с). Любые предложения, как не перепутать это?
1 ответ
Это была интересная проблема, которую я добавлю в свой документ « Обзор использования газеты» , доступный на GitHub.
Я попытался использовать газету.build, но не смог заставить ее работать правильно, поэтому я использовал газету Source.
from time import sleep
from random import randint
from newspaper import Config
from newspaper import Source
USER_AGENT = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:78.0) Gecko/20100101 Firefox/78.0'
config = Config()
config.browser_user_agent = USER_AGENT
config.request_timeout = 10
wayback_cnbc = Source(url='https://web.archive.org/web/20180301012621/https://www.cnbc.com/', config=config,
memoize_articles=False, language='en', number_threads=20, thread_timeout_seconds=2)
wayback_cnbc.build()
for article_extract in wayback_cnbc.articles:
article_extract.download()
article_extract.parse()
print(article_extract.publish_date)
print(article_extract.title)
print(article_extract.url)
print('')
# this sleep timer is helping with some timeout issues
# that were happening when querying
sleep(randint(1,3))
Пример выше выводит это:
None
Media
https://web.archive.org/web/20180301012621/https://www.cnbc.com/media/
None
CNBC Video
https://web.archive.org/web/20180301012621/https://www.cnbc.com/video/
2017-11-08 00:00:00
CNBC Healthy Returns
https://web.archive.org/web/20180301012621/https://www.cnbc.com/2017/11/08/healthy-returns.html
2018-02-28 00:00:00
Markets in Asia decline as dollar steadies; Nikkei falls 307 points
https://web.archive.org/web/20180301012621/https://www.cnbc.com/2018/02/28/asia-markets-stocks-dollar-and-china-caixin-pmi-in-focus.html
2018-02-28 00:00:00
S&P 500 rises, but on track to snap longest monthly win streak since 1959
https://web.archive.org/web/20180301012621/https://www.cnbc.com/2018/02/28/us-stocks-interest-rates-fed-markets.html
Надеюсь, этот ответ поможет вам в вашем случае использования для запроса статей на WayBack Machine. Если у вас есть какие-либо вопросы, пожалуйста, дайте мне знать.