阳54 2022-01-23 21:35 采纳率: 33.3%
浏览 24
已结题

爬虫爬取数量改变不了,如何解决?


import requests
import json
if __name__ == '__main__' :
    start_url = 'http://scxk.nmpa.gov.cn:81/xk/itownet/portalAction.do?method=getXkzsList'
    headers = {
        'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36 Edg/97.0.1072.69'
    }
    ID_dic = []
    info1 = []
    for page in range(1,6):
        page = str(page)
        data = {
            'on': 'true',
            'page' : page,
            'pageSize' : '15',
            'productName' : '',
            'conditionType' : '1',
            'applyname' : '',
            'applysn' : ''
            }
        json_ids = requests.post(start_url, data=data, headers=headers).json()
    for dict in json_ids['list']:
        ID_dic.append(dict['ID'])
    #print(ID_dic)
    post_url = 'http://scxk.nmpa.gov.cn:81/xk/itownet/portalAction.do?method=getXkzsById'
    for id in ID_dic:
        data = {
        'id' : id
        }

        info = requests.post(post_url,data=data,headers=headers).json()

        info1.append(info)
        #print(info1)
    with open('./药监局','w',encoding='utf-8') as f:
        f.write(json.dumps(info1,ensure_ascii=False))
        f.close()



  • 写回答

2条回答 默认 最新

  • 关注

    for dict in json_ids['list']: 要缩进增加一层放到 for page in range(1,6):循环里面

    你题目的解答代码如下:

    import requests
    import json
    if __name__ == '__main__' :
        start_url = 'http://scxk.nmpa.gov.cn:81/xk/itownet/portalAction.do?method=getXkzsList'
        headers = {
            'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36 Edg/97.0.1072.69'
        }
        ID_dic = []
        info1 = []
        for page in range(1,6):
            page = str(page)
            data = {
                'on': 'true',
                'page' : page,
                'pageSize' : '15',
                'productName' : '',
                'conditionType' : '1',
                'applyname' : '',
                'applysn' : ''
                }
            json_ids = requests.post(start_url, data=data, headers=headers).json()
    
            for dict in json_ids['list']: #缩进增加一层
                ID_dic.append(dict['ID'])
    
        print(ID_dic)
        post_url = 'http://scxk.nmpa.gov.cn:81/xk/itownet/portalAction.do?method=getXkzsById'
        for id in ID_dic:
            data = {
            'id' : id
            }
    
            info = requests.post(post_url,data=data,headers=headers).json()
    
            info1.append(info)
        # print(info1)
        with open('./药监局','w',encoding='utf-8') as f:
            f.write(json.dumps(info1,ensure_ascii=False))
            f.close()
    

    如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 2月1日
  • 已采纳回答 1月24日
  • 创建了问题 1月23日

悬赏问题

  • ¥15 LiBeAs的带隙等于0.997eV,计算阴离子的N和P
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 matlab有关常微分方程的问题求解决
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?
  • ¥100 求三轴之间相互配合画圆以及直线的算法