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

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日

悬赏问题

  • ¥50 微信聊天记录备份到电脑提示成功了,但还是没同步到电脑微信
  • ¥15 python怎么在已有视频文件后添加新帧
  • ¥20 虚幻UE引擎如何让多个同一个蓝图的NPC执行一样的动画,
  • ¥15 fluent里模拟降膜反应的UDF编写
  • ¥15 MYSQL 多表拼接link
  • ¥15 关于某款2.13寸墨水屏的问题
  • ¥15 obsidian的中文层级自动编号
  • ¥15 同一个网口一个电脑连接有网,另一个电脑连接没网
  • ¥15 神经网络模型一直不能上GPU
  • ¥15 pyqt怎么把滑块和输入框相互绑定,求解决!