如何将Python获取的Google News Airlines新闻结果导出为CSV文件
解决方案
你可以直接用Python标准库的csv模块的DictWriter类完成结构化写入,它会自动匹配字典的key生成表头,不用手动处理字段顺序,适配GoogleNews返回的结果结构非常方便。
完整修改后代码
import ssl ssl._create_default_https_context = ssl._create_unverified_context from GoogleNews import GoogleNews import csv googlenews = GoogleNews() googlenews.set_encode('utf_8') googlenews.set_lang('de') googlenews.set_period('1d') googlenews.get_news('Airlines') # 获取抓取结果 news_list = googlenews.results() # 定义需要保留的字段,可按需增减 need_fields = ["title", "desc", "link", "datetime", "media"] # 写入CSV文件,指定编码避免德语特殊字符乱码 with open("airlines_news.csv", "w", newline="", encoding="utf-8-sig") as f: writer = csv.DictWriter(f, fieldnames=need_fields) # 写入表头行 writer.writeheader() # 批量写入所有新闻数据 writer.writerows(news_list) print(f"已成功写入{len(news_list)}条新闻到airlines_news.csv")
关键修改说明
- 首先把
googlenews.results()的返回值保存到变量news_list里,这是一个由字典组成的列表,每个字典对应一条新闻的全部字段 encoding="utf-8-sig"是为了适配Windows下Excel打开CSV时不会出现乱码,完整保留德语的变音字符等特殊符号- 可以自行调整
need_fields里的字段,如果你不需要发布时间、来源媒体这类信息,删掉对应字段即可 newline=""是csv模块写入Windows系统时的标准写法,避免生成的CSV出现多余空行
内容的提问来源于stack exchange,提问作者Dean James
相关产品推荐
相关产品推荐

