我已成功设法调用News API并将结果导入DataFrame,但仅限于第1页。
def get_articles(keyword):
all_articles = newsapi.get_everything(q=keyword, sources='abc-news-au, news-com-au',
domains='http://www.abc.net.au/news, http://www.news.com.au',
from_param='2018-12-28',
to='2019-01-28',
language='en',
sort_by='popularity',
page=1)
all_articles = pd.DataFrame(all_articles)
all_articles = pd.concat([all_articles.drop(['articles'], axis=1), all_articles['articles'].apply(pd.Series)], axis=1)
return all_articles
它给了我想要的数据帧,但是,当我尝试循环浏览以下页面时,我变得不稳定。
我尝试了以下内容
empty_list = []
for i in range(1,4,1):
all_articles = all_articles = newsapi.get_everything(q=keyword, sources='abc-news-au, news-com-au',
domains='http://www.abc.net.au/news, http://www.news.com.au',
from_param='2018-12-28',
to='2019-01-28',
language='en',
sort_by='popularity',
page=i)
empty_list.append(all_articles)
这将返回所有文章,但它是存储在列表中的字典。
解决办法:
想要提取文章值extend而不是append:
articles = []
for i in range(1,4,1):
articles_page = newsapi.get_everything(
q=keyword,
sources='abc-news-au, news-com-au',
domains='http://www.abc.net.au/news, http://www.news.com.au',
from_param='2018-12-28',
to='2019-01-28',
language='en',
sort_by='popularity',
page=i)
articles.extend(articles_page['articles'])
pd.DataFrame(articles)








暂无数据