requests爬取国家药监总局中基于中华人民共和国化妆品生产许可证相关数据

今天利用requests模块爬取了药品监督总局的生产许可证信息。通过对生产许可证详情页的观察可以发现,url全是一样的,只有对应参数id不同,所以第一步就要获取到所有公司对应的id值,然后再将id值与url进行拼接即可获取企业详情数据,具体操作参照以下代码。

import requests
import  json
if __name__ == "__main__":
    #获取企业id数据
    url = 'http://125.35.6.84: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/81.0.4044.138 Safari/537.36'
    }
    id_list = []  # 用来存储获取到的id值
    all_detail_list = []  # 用来存储所有的企业详情数据
    for page in range(1,3):#遍历所有页中的公司
        page = str(page)
        data = {
        'on':' true',
        'page':page,
        'pageSize':' 15',
        'productName':'',
        'conditionType':' 1',
        'applyname':'',
        'applysn':'',
        }
        json_ids = requests.post(url=url,headers=headers,data=data).json()
        for dic in json_ids['list']:
            id_list.append(dic['ID'])
            #print(id_list)
    #接下来获取企业详情页
    post_url = 'http://125.35.6.84:81/xk/itownet/portalAction.do?method=getXkzsById'
    for id in id_list:
        data = {
           'id':id
        }
        detail_list = requests.post(url=post_url,data=data,headers=headers).json()
        all_detail_list.append(detail_list)
    #永久化存储
    fp = open('./yaojianju.json','w',encoding='utf-8')
    json.dump(all_detail_list,fp=fp,ensure_ascii=False)
    print('over!!')

运行结果如下: 

 

在做的时候有几个小的技巧,比如说将快速加引号和整段代码缩进。

1.快速加引号

在PyCharm 编辑器中按住Ctrl+R  ,分别在第一行第二行输入1. (.*?):(.*)        2. '$1':'$2',

然后将一下框打上对勾,如下图。

2. 整段代码缩进

Pycharm中为选中需缩进的代码,然后按Tab即可,取消为Tab+shift

如果是python自带编辑器缩进为Ctrl+[    ,取消为Ctrl+]

以上即为本文内容

猜你喜欢

转载自blog.csdn.net/qwerty1372431588/article/details/105970370