Python3获取XX管理局可见数据学习案例

python3获取XX管理局可见数据学习案例

# 导入erquests (网络请求库)
import requests
import json
import time


# 进行伪装!
requests_headers={
    
    
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36 Edg/87.0.664.60'
    }

# 1. 获取首页阿贾克斯请求数据

# (1)指定url (首页阿贾克斯url)
home_url ='http://scxk.nmpa.gov.cn:81/xk/itownet/portalAction.do'

# (2)封装请求参数 (首页阿贾克斯请求参数)
home_param={
    
    
    'method': 'getXkzsList',
    'on': 'true',
    'page': '1' ,         # 页码   (想要多少页内容,动态修改这个页码就行)
    'pageSize': '15',     #每页的数据条数
    'productName': '' ,     # 查询的关键词
    'conditionType': '1',     #1是许可编号,2是名称,3是信用代码
    'applyname': '',
    'applysn': ''
    }

# 设置睡眠时间 3秒
time.sleep(3)
#  (3)向首页的阿贾克斯url发送请求 (先分析使用get() 或者 post(), 然后分析是否是阿贾克斯请求)
home_response =requests.post(url=home_url,params=home_param, headers=requests_headers )


# (4)获取响应数据 (处理首页阿贾克斯请求数据,提取里面的id值,)
hoem_response=home_response.json()  # 为json数据,所以要用.json


# 使用遍历分别获取首页第一页中的ID!
ajax_list=[]
for ajax_dict in hoem_response['list']:   # 取出response 这个字典中的'list' 键,也就是存放首页ajax请求数据的字典。
    #print( ajax_dict)   # 打印一下看是否已经获取到字典。
     ajax_id = ajax_dict['ID']   # 通过 ajax_dict 字典中的”ID“键来获取id值。
     #print(ajax_id)   # 打印一下看是否已经获取到。
     ajax_list.append(ajax_id) # 将获取到的id值存入ajax_lsit
     
print(ajax_list)   # 打印一下字典看是否写入字典成功!

# 2. 通过提取到的id值,获取子页ajax数据中基本信息


# (1)指定url (子页阿贾克斯url)
child_url = "http://scxk.nmpa.gov.cn:81/xk/itownet/portalAction.do?method=getXkzsById"

# 使用遍历分别打印出首页第一页中的基本信息!(遍历上面获取到的id值)
for i in ajax_list:
    # (2)封装请求参数(子页阿贾克斯请求参数)
   child_param={
    
    
       "id": i   
    }
   # 设置睡眠时间 0.3秒
   time.sleep(0.3)
    #(3)向子页阿贾克斯url发送请求 (先分析使用get() 或者 post(), 然后分析是否是阿贾克斯请求)
   child_response =requests.post(url=child_url,params=child_param, headers=requests_headers )
   page_text = child_response.json()   # 为json数据,所以要用.json
   print(page_text)  # 打印出每次遍历请求得到的响应数据

   # 3.做数据存储  (将每次遍历请求得到的信息写入文档)
   fp =open("E:\python实例\爬虫第一课\实例6:千灯信息爬取学习案例/响应数据.txt","a",encoding='utf-8') 
   page_data =json.dump(page_text,fp=fp,ensure_ascii=False)
   # 使用dump写入文件需要另外写关闭文件的语句,dump不像上下文管理器那样自动关闭文件,同时这里
   #也不适合使用上下文管理器!
   
# 全部写入完成后关闭文件(释放资源)
fp.close()


以上是个人日常学习案例,经验思路总结分享!

猜你喜欢

转载自blog.csdn.net/qq_43082279/article/details/111186883