jiegezei666 2022-02-19 19:37 采纳率: 40%
浏览 40
已结题

python把爬取的网页信息写到json文件中

我想把爬取的内容一个循环在json文件写一行,我自己写的程序老是把每个循环爬取到的内容以很多行的形式存储到json文件中,大家有什么建议吗?


import requests

headers = {
    'Accept-Encoding': 'gzip, deflate, sdch',
    'Accept-Language': 'en-US,en;q=0.8',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36',
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    'Referer': 'http://www.wikipedia.org/',
    'Connection': 'keep-alive',
}

fileObject = open('gongshi.json', 'w', encoding='utf-8')

for i in range(10):
    response = requests.get('https://pubchem.ncbi.nlm.nih.gov/sdq/sdqagent.cgi?infmt=json&outfmt=json&query={%22select%22:%22*%22,'
                        '%22collection%22:%22compound%22,%22where%22:{%22ands%22:[{%22*%22:%22CCCC%22}]},'
                        '%22order%22:[%22relevancescore,desc%22],%22start%22:'+str(i)+'1,%22limit%22:10,%22width%22:1000000,'
                        '%22listids%22:0}', headers=headers)

    fileObject.write(response.text+'\n')
fileObject.close()
  • 写回答

1条回答 默认 最新

  • grizzly00 2022-02-19 20:32
    关注

    你可以试试使用res = json.dumps(response.text),将python数据类型str转化为json格式(虽然在python中也是字符串),但是会将\n显示出来,而不是在文件中变成『真实的换行』。
    你可以打印看看效果,如果有用望采纳😁

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 2月28日
  • 已采纳回答 2月20日
  • 创建了问题 2月19日

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料