Газетная библиотека
Как абсолютный новичок в теме использования python, я наткнулся на несколько трудностей, связанных с расширением газетной библиотеки. Моя цель - регулярно использовать расширение газеты, чтобы загружать все новые статьи немецкого новостного сайта под названием "tagesschau" и все статьи из CNN для создания стека данных, который я могу анализировать через несколько лет. Если я правильно понял, я мог бы использовать следующие команды, чтобы загрузить и скопировать все статьи в библиотеку python.
import newspaper
from newspaper import news_pool
tagesschau_paper = newspaper.build('http://tagesschau.de')
cnn_paper = newspaper.build('http://cnn.com')
papers = [tagesschau_paper, cnn_paper]
news_pool.set(papers, threads_per_source=2) # (3*2) = 6 threads total
news_pool.join()`
Если это правильный способ загрузки всех статей, то как я могу извлечь и сохранить их вне Python? Или сохранить эти статьи в Python, чтобы я мог использовать их снова, если я перезапущу Python снова?
Спасибо за вашу помощь.
2 ответа
Следующие коды сохранят загруженные статьи в формате HTML. В папке вы найдете. tagesschau_paper0.html, tagesschau_paper1.html, tagesschau_paper2.html, .....
import newspaper
from newspaper import news_pool
tagesschau_paper = newspaper.build('http://tagesschau.de')
cnn_paper = newspaper.build('http://cnn.com')
papers = [tagesschau_paper, cnn_paper]
news_pool.set(papers, threads_per_source=2)
news_pool.join()
for i in range (tagesschau_paper.size()):
with open("tagesschau_paper{}.html".format(i), "w") as file:
file.write(tagesschau_paper.articles[i].html)
Замечания: news_pool
ничего не получает от CNN, поэтому я пропустил написание кодов для него. Если вы проверите cnn_paper.size()
, это приводит к 0
, Вместо этого вы должны импортировать и использовать источник.
Приведенные выше коды можно использовать в качестве примера для сохранения статей и в других форматах, например, txt, а также только те части, которые вам нужны из статей, например авторы, тело, publish_date.
Вы можете использовать pickle, чтобы сохранить объекты вне python и открыть их позже:
file_Name = "testfile"
# open the file for writing
fileObject = open(file_Name,'wb')
# this writes the object news_pool to the
# file named 'testfile'
pickle.dump(news_pool,fileObject)
# here we close the fileObject
fileObject.close()
# we open the file for reading
fileObject = open(file_Name,'r')
# load the object from the file into var news_pool_reopen
news_pool_reopen = pickle.load(fileObject)