Газетная библиотека - PullRequest
0 голосов
/ 14 ноября 2018

Как абсолютный новичок в теме использования 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 снова?

Спасибо за вашу помощь.

Ответы [ 2 ]

0 голосов
/ 16 ноября 2018

Следующие коды сохранят загруженные статьи в формате 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.Вместо этого вы должны импортировать и использовать Source .

Приведенные выше коды можно использовать в качестве примера для сохранения статей и в других форматах, например, txt, а также только те части, которые вам нужны из статей.например, авторы, тело, publish_date.

0 голосов
/ 14 ноября 2018

Вы можете использовать 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)  
...