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


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()



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

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632