• 爬取药监总局中相关企业的详情信息


    • 需求
      • 爬取药监总局中相关企业的详情信息http://125.35.6.84:81/xk/
    • 需求分析
      • 确定页面中企业相关数据是否为动态加载?
        • 相关的企业信息是动态加载出来的
      • 通过抓包工具实现全局搜索,定位动态加载数据对应的数据包!
      • 每一家企业详情页的url,域名都是一样的,只有请求参数id值不同
        • 可以使用同一个域名结合着不同企业的id值拼接成一家完整企业详情页url
        • 判断企业详情页中的数据是否为动态加载?
          • 通过抓包工具检测,发现企业详情信息在详情页中为动态加载的数据
          • 通过抓包工具实现全局搜索定位动态加载数据对应的数据包
    import requests
    headers = {
        'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36'
    }
    
    
    #获取每一家企业的id
    url = 'http://125.35.6.84:81/xk/itownet/portalAction.do?method=getXkzsList'
    for page in range(1,6):
        print('正在爬取第{}页的数据......'.format(page))
        data = {
            'on': 'true',
            'page': str(page),
            'pageSize': '15',
            'productName': '',
            'conditionType': '1',
            'applyname': '',
            'applysn':'',
        }
        company_data = requests.post(url,headers=headers,data=data).json()
        for dic in company_data['list']:
            _id = dic['ID']
            detail_url = 'http://125.35.6.84:81/xk/itownet/portalAction.do?method=getXkzsById'
            data = {
                'id':_id
            }
            detail_data = requests.post(url=detail_url,data=data,headers=headers).json()
            print(detail_data['epsName'],detail_data['legalPerson'])
    
    • 如何检测页面中是否存在动态加载的数据?
      • 基于抓包工具实现
        • 先捕获网站请求后所有的数据包
        • 在数据包中定位到地址栏所对应请求的数据包,在response选项卡对应的数据中进行局部搜索(页面中的某一组内容)
          • 可以搜索到:爬取的数据不是动态加载的
          • 没有搜索到:爬取的数据是动态加载的
        • 如何定位动态加载的数据在哪个数据包中呢?
          • 进行全局搜索
  • 相关阅读:
    分段随机实践—模拟线上流量
    基于docker的分布式性能测试框架功能验证(二)
    将博客搬家至CSDN
    考研机试 98.棋盘游戏
    考研机试 100.路径打印
    考研机试 102.计算表达式
    考研机试 97.数字反转
    考研机试 90.简单密码
    考研机试 87.鸡兔同笼
    考研机试 79.浮点数加法
  • 原文地址:https://www.cnblogs.com/5kuishoua666/p/12021683.html
Copyright © 2020-2023  润新知