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

爬虫爬取数量改变不了,如何解决?
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- CSDN专家-天际的海浪 2022-01-23 21:41关注
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()
如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用