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

Posted 5kuishoua666

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了爬取药监总局中相关企业的详情信息相关的知识,希望对你有一定的参考价值。

  • 需求
    • 爬取药监总局中相关企业的详情信息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选项卡对应的数据中进行局部搜索(页面中的某一组内容)
        • 可以搜索到:爬取的数据不是动态加载的
        • 没有搜索到:爬取的数据是动态加载的
      • 如何定位动态加载的数据在哪个数据包中呢?
        • 进行全局搜索

以上是关于爬取药监总局中相关企业的详情信息的主要内容,如果未能解决你的问题,请参考以下文章

全网最全python爬虫系统进阶学习(附原代码)学完可就业

全网最全python爬虫系统进阶学习(附原代码)学完可就业

[答疑]药监局要这个订单流信息,结合他们自己的系统,然后到企业的现场还要采

我的Android进阶之旅NDK开发之在C++代码中使用Android Log打印日志,打印出C++的函数耗时以及代码片段耗时详情

实例--股票数据定向爬取

别再说难了,年轻小伙教你如何爬取“新一线城市”二手房信息