数据采集(案例)

简介: 爬虫系列文章

作业(爬取药监总局)

  • 需求:爬取药监总局中的企业详情数据,每一家企业详情页对应的详情数据(爬取前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)
相关文章
|
1月前
|
数据采集 存储 Python
3.2 数据采集
本节采用Python进行网页数据抓取,利用其强大的配置与字符处理能力,以及丰富的网络模块,高效地采集了指定网站的前50页手机销售数据及10款手机的售后详情。通过使用requests库完成HTTP请求设定,并结合XPath进行精准的页面解析,提取关键信息如店铺名、手机品牌、型号参数等,最后将这些数据保存为CSV格式以供后续分析使用。
40 6
|
5月前
|
数据采集 传感器 存储
数据采集
【6月更文挑战第16天】数据采集。
95 12
|
5月前
|
数据采集 消息中间件 存储
数据采集方法
【6月更文挑战第21天】数据采集方法。
104 3
|
4月前
|
数据采集 存储 自然语言处理
Python爬虫与数据可视化:构建完整的数据采集与分析流程
Python爬虫与数据可视化:构建完整的数据采集与分析流程
|
数据采集 分布式计算 数据挖掘
80 网站点击流数据分析案例(数据采集功能)
80 网站点击流数据分析案例(数据采集功能)
71 0
|
消息中间件 数据挖掘 Kafka
实时数据分析演示
实时数据分析演示
|
SQL 分布式计算 调度
开源大数据分析实验(1)——简单用户画像分析之采集数据
本场景主要介绍基于海量日志数据进行简单用户画像分析为背景,如何通过使用DataWorks完成数据采集 、加工数据、配置数据质量监控和数据可视化展现等任务。
|
数据采集 消息中间件 关系型数据库
数据采集(二)
数据采集(二)
220 0
|
数据采集 存储 人工智能
数据采集(一)
数据采集(一)
105 0
|
数据采集 消息中间件 分布式计算
大数据数据采集的数据采集(收集/聚合)的Logstash之数据采集流程的output
在大数据领域,数据采集是非常重要的一环。而Logstash作为一个开源的数据收集引擎,可以帮助我们轻松地实现数据的采集、聚合和传输等功能。本文将会对Logstash之数据采集流程的Output进行详细介绍。
127 1