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日

悬赏问题

  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效