数据采集(案例)

简介: 爬虫系列文章

作业(爬取药监总局)

  • 需求:爬取药监总局中的企业详情数据,每一家企业详情页对应的详情数据(爬取前5页企业)
  • url:http://125.35.6.84:81/xk/
  • 分析:

    • 企业详情数据是否为动态加载数据?

      • 基于抓包工具进行局部搜索。发现为动态加载数据
    • 捕获动态加载的数据

      • 基于抓包工具进行全局搜索。
      • 定位到的数据包提取的

        • url:

        • 请求参数:

          • id: 536878abac734332ae06dcb1a3fbd14a
          • id: 950d66fbf8714fbc9e799010e483d2d5
      • 结论:每一家企业详情数据对应的请求url和请求方式都是一样的,只有请求参数id的值不一样。

        • 如果我们可以将每一家企业的id值捕获,则就可以将每一家企业详情数据进行爬取。
    • 捕获企业的id

      • 企业的id表示的就是唯一的一家企业。我们就猜测企业id可能会和企业名称捆绑在一起。
      • 在首页中会有不同的企业名称,则我们就基于抓包工具对首页的数据包进行全局搜索(企业名称)

        • url:http://125.35.6.84:81/xk/itownet/portalAction.do?method=getXkzsList
        • 方式:post
        • 请求参数:

          • on=true&page=1&pageSize=15&productName=&conditionType=1&applyname=&applysn=
 import requests

#获取每一家企业的id值,去首页分析查找对应企业的id值
url = 'http://125.35.6.84:81/xk/itownet/portalAction.do?method=getXkzsList'
data = {
    'on': 'true',
    'page': '1',
    'pageSize': '15',
    'productName': '',
    'conditionType': '1',
    'applyname': '',
    'applysn': '',
}
response = requests.post(url=url,headers=headers,data=data)
all_company_list = response.json()['list']
for dic in all_company_list:
    _id = dic['ID']
#     print(_id)
    #将id作为请求企业详情数据url的请求参数
    detail_url = 'http://125.35.6.84:81/xk/itownet/portalAction.do?method=getXkzsById'
    data = {
        'id':_id
    }
    response = requests.post(url=detail_url,headers=headers,data=data)
    company_detail_dic = response.json()
    person_name = company_detail_dic['businessPerson']
    addr = company_detail_dic['epsProductAddress']
    print(person_name,addr)
 import requests

#捕获多页数据
#获取每一家企业的id值,去首页分析查找对应企业的id值
url = 'http://125.35.6.84:81/xk/itownet/portalAction.do?method=getXkzsList'
for page in range(1,6):
    data = {
        'on': 'true',
        'page': str(page),
        'pageSize': '15',
        'productName': '',
        'conditionType': '1',
        'applyname': '',
        'applysn': '',
    }
    response = requests.post(url=url,headers=headers,data=data)
    all_company_list = response.json()['list']
    for dic in all_company_list:
        _id = dic['ID']
    #     print(_id)
        #将id作为请求企业详情数据url的请求参数
        detail_url = 'http://125.35.6.84:81/xk/itownet/portalAction.do?method=getXkzsById'
        data = {
            'id':_id
        }
        response = requests.post(url=detail_url,headers=headers,data=data)
        company_detail_dic = response.json()
        person_name = company_detail_dic['businessPerson']
        addr = company_detail_dic['epsProductAddress']
        print(person_name,addr)
相关文章
|
2月前
|
数据采集 存储 Python
3.2 数据采集
本节采用Python进行网页数据抓取,利用其强大的配置与字符处理能力,以及丰富的网络模块,高效地采集了指定网站的前50页手机销售数据及10款手机的售后详情。通过使用requests库完成HTTP请求设定,并结合XPath进行精准的页面解析,提取关键信息如店铺名、手机品牌、型号参数等,最后将这些数据保存为CSV格式以供后续分析使用。
43 6
|
17天前
|
数据采集 传感器 监控
MES系统的实时数据采集和监控功能具体如何实现?
MES系统(制造执行系统)通过与PLC、SCADA系统集成,加装传感器和使用物联网技术,结合条码与RFID技术、图像识别、云计算等手段,实现生产过程的全面实时数据采集和监控,确保数据的实时性和准确性,支持生产优化和决策。
|
6月前
|
数据采集 传感器 存储
数据采集
【6月更文挑战第16天】数据采集。
103 12
|
6月前
|
数据采集 消息中间件 存储
数据采集方法
【6月更文挑战第21天】数据采集方法。
115 3
|
7月前
|
数据采集 存储 传感器
浅谈数据采集的难点|大规模数据采集首选的电商API接口
在当今的制造业领域,数据采集是一个难点。很多企业的生产数据采集主要依靠传统的手工作业方式,采集过程中容易出现人为的记录错误且效率低下。 有些企业虽然引进了相关技术手段,并且应用了数据采集系统,但是由于系统本身的原因以及企业没有选择最适合自己的数据采集系统,因此也无法实现信息采集的实时性、精确性和延伸性管理,各单元出现了信息断层的现象。
|
数据采集 分布式计算 数据挖掘
80 网站点击流数据分析案例(数据采集功能)
80 网站点击流数据分析案例(数据采集功能)
75 0
|
SQL 分布式计算 调度
开源大数据分析实验(1)——简单用户画像分析之采集数据
本场景主要介绍基于海量日志数据进行简单用户画像分析为背景,如何通过使用DataWorks完成数据采集 、加工数据、配置数据质量监控和数据可视化展现等任务。
|
消息中间件 数据挖掘 Kafka
实时数据分析演示
实时数据分析演示
|
数据采集 存储 人工智能
数据采集(一)
数据采集(一)
112 0
|
数据采集 消息中间件 关系型数据库
数据采集(二)
数据采集(二)
227 0