数据采集(案例)

简介: 爬虫系列文章

作业(爬取药监总局)

  • 需求:爬取药监总局中的企业详情数据,每一家企业详情页对应的详情数据(爬取前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)
相关文章
|
3月前
|
数据采集 消息中间件 存储
数据采集方法
【6月更文挑战第21天】数据采集方法。
65 3
|
3月前
|
数据采集 传感器 存储
数据采集
【6月更文挑战第16天】数据采集。
45 12
|
2月前
|
数据采集 存储 自然语言处理
Python爬虫与数据可视化:构建完整的数据采集与分析流程
Python爬虫与数据可视化:构建完整的数据采集与分析流程
|
11月前
|
消息中间件 数据挖掘 Kafka
实时数据分析演示
实时数据分析演示
|
SQL 分布式计算 调度
开源大数据分析实验(1)——简单用户画像分析之采集数据
本场景主要介绍基于海量日志数据进行简单用户画像分析为背景,如何通过使用DataWorks完成数据采集 、加工数据、配置数据质量监控和数据可视化展现等任务。
|
数据采集 存储 人工智能
数据采集(一)
数据采集(一)
|
数据采集 消息中间件 关系型数据库
数据采集(二)
数据采集(二)
187 0
|
数据采集 消息中间件 分布式计算
大数据数据采集的数据采集(收集/聚合)的Logstash之数据采集流程的output
在大数据领域,数据采集是非常重要的一环。而Logstash作为一个开源的数据收集引擎,可以帮助我们轻松地实现数据的采集、聚合和传输等功能。本文将会对Logstash之数据采集流程的Output进行详细介绍。
100 1
|
数据采集 消息中间件 监控
大数据数据采集的数据采集(收集/聚合)的Logstash之数据采集流程的input
在大数据领域,数据采集是非常重要的一环。而Logstash作为一个开源的数据收集引擎,可以帮助我们轻松地实现数据的采集、聚合和传输等功能。本文将会对Logstash之数据采集流程的Input进行详细介绍。
113 1
|
数据采集 JSON 大数据
大数据数据采集的数据采集(收集/聚合)的Logstash之数据采集流程的filter
在大数据领域中,Logstash是一款非常流行的数据采集工具。它可以从各种不同的来源收集和聚合数据,并将其转换成统一格式进行处理。而在Logstash的数据采集过程中,Filter是一个非常重要的环节,可以对数据进行过滤、裁剪、重组等操作。本文将分享如何使用Logstash的Filter功能,来优化数据采集流程。
105 1