亓 亓 2022-07-23 23:35 采纳率: 75%
浏览 79
已结题

各省的疫情信息保存到Excel文件里面

img

img

img

img


将各省的疫情信息保存到Excel文件里面,如这个图一样,这样来写入,做了两天,还是不会

img

  • 写回答

3条回答 默认 最新

  • UPDATE DEFAULT 2022-07-24 19:47
    关注
    import requests
    import re
    import json
    from openpyxl import Workbook
    
    def export(page_source, id='getAreaStat'):
        re_script = re.search(f'script id=\"{id}\".+?/script' ,page_source)
        str_json = re.search(r'\[.+\]', re_script.group()).group()
        items = json.loads(str_json)
        #with open(f'{id}.json', 'w', encoding='utf8') as f:
            #f.write(str_json)    
        if items:
            wb = Workbook()
            ws0 = wb.active
            ws0.title = '全国'
            ws0.append([str(k) for k,v in items[0].items() if k!='cities'])
            for item in items:
                ws = wb.create_sheet(item['provinceName'])    
                if item['cities']:
                    headers = list(item['cities'][0].keys())
                    ws.append(headers)
                    for city in item['cities']:
                        ws.append(list(city.values()))        
                ws0.append([str(v) for k,v in item.items() if k!='cities'])
            wb.save(f'{id}.xlsx')
            wb.close()
    
    def main():
        headers = {
            'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
            'Accept-Encoding': 'gzip, deflate, br',
            'Accept-Language': 'zh-CN,zh;q=0.9',
            'Connection': 'keep-alive',
            'Host': 'ncov.dxy.cn',
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36',
        }
        res = requests.get('https://ncov.dxy.cn/ncovh5/view/pneumonia', headers=headers)
        res.encoding = res.apparent_encoding 
        export(res.text, 'getAreaStat')
        export(res.text, 'fetchRecentStatV2')
    
    if __name__ == '__main__':
        main()
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 7月24日
  • 已采纳回答 7月24日
  • 创建了问题 7月23日

悬赏问题

  • ¥15 如何在node.js中或者java中给wav格式的音频编码成sil格式呢
  • ¥15 不小心不正规的开发公司导致不给我们y码,
  • ¥15 我的代码无法在vc++中运行呀,错误很多
  • ¥50 求一个win系统下运行的可自动抓取arm64架构deb安装包和其依赖包的软件。
  • ¥60 fail to initialize keyboard hotkeys through kernel.0000000000
  • ¥30 ppOCRLabel导出识别结果失败
  • ¥15 Centos7 / PETGEM
  • ¥15 csmar数据进行spss描述性统计分析
  • ¥15 各位请问平行检验趋势图这样要怎么调整?说标准差差异太大了
  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题