药监局地址—— 化妆品生产许可信息管理系统服务平台
需求分析进入如下页面 我们要获取如下每一个化妆品公司里面具体的详情数据 需要点击进去
经页面分析 两个页面都是发送的ajax请求。且都是以POST方式进行发送。
代码编写import requests
import json
headers {
User-Agent : Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Mobile Safari/537.36
def get_data():
url http://scxk.nmpa.gov.cn:81/xk/itownet/portalAction.do?method getXkzsList
id_list [] #存储id值
for k in range(1,6): #提取前5页数据
data {
on : true ,
page : k,
pageSize : 15 ,
productName : ,
conditionType : 1,
applyname : ,
applysn :
response requests.post(url url,data data,headers headers,timeout 5).json()
response_list response.get( list ) #为列表
for i in response_list: #将每一页中的所有的id值提取
id i.get( ID )
id_list.append(id)
return id_list
#获取详情页中的数据
def get_detail_data(id_list):
url2 http://scxk.nmpa.gov.cn:81/xk/itownet/portalAction.do?method getXkzsById
detail []
for j in id_list:
data {
id :j
response requests.post(url url2,data data,headers headers,timeout 5).json()
detail.append(response)
return detail
def save(detail):
with open( ./药监局.json , w ,encoding utf-8 ) as df:
json.dump(detail,df,ensure_ascii False)
print( 共获取 ,len(detail), 条信息 ) #共获取75条信息
def main():
a get_data()
b get_detail_data(a)
save(b)
if __name__ __main__ :
main()



