动态数据采集

简介: 爬虫系列文章

动态加载

  • 需求:爬取豆瓣网中的电影详情数据,

  • 分析网站:

    • 当滚轮滑动到底部的时候,页面会发起ajax请求,且请求到一组电影详情数据。
    • 当滚轮不滑动的时候,页面显示的电影数据,通过对浏览器地址栏的url发起请求是请求不到的。
  • 动态加载的数据

    • 可见非即可得
    • 概念:通过非浏览器地址栏url请求到的数据(另外的一个新的请求请求到的数据)
    • 当我们对一个陌生的网站进行指定数据爬取之前,我们在写代码之前必须要做的一个事情就是校验你想要爬取的数据是否为动态加载的数据

      • 是动态加载的数据

        • 基于抓包工具进行全局搜索,锁定动态加载数据对应的数据包即可。从数据包中提取请求的url和请求方式和请求参数。
      • 不是动态加载的数据

        • 直接对地址栏的url发起请求就可以获取指定数据
import requests

url = 'https://movie.douban.com/j/chart/top_list'
#参数动态化
params = {
    "type": "17",
    "interval_id": "100:90",
    "action": "",
    "start": "20",
    "limit": "10",
}
response = requests.get(url=url,headers=headers,params=params)
page_text = response.json() #json返回的是序列号好的对象
#将电影名称和评分进行解析
for dic in page_text:
    name = dic['title']
    score = dic['score']
    print(name+':'+score)
  • 问题:如何检测页面中的数据是否为动态加载的数据?

    • 基于抓包工具进行局部搜索

      • 搜索到:不是动态加载数据
      • 搜索不到:是动态加载数据
  • 肯德基餐厅查询:http://www.kfc.com.cn/kfccda/storelist/index.aspx
  • 分析:

    • 数据为动态加载数据
    • 通过抓包工具的全局搜索捕获动态加载数据
import requests

url = 'http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx?op=keyword'
data = {
    "cname": "",
    "pid": "",
    "keyword": "北京",
    "pageIndex": "1",
    "pageSize": "10",
}
#参数:data是用来实现参数动态化,等同于get方法中的params参数的作用
response = requests.post(url=url,headers=headers,data=data)
page_text = response.json()
for dic in page_text['Table1']:
    pos = dic['addressDetail']
    print(pos)
 import requests

#想要获取所有页码对应的位置信息
url = 'http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx?op=keyword'
for pageNum in range(1,8):
    data = {
        "cname": "",
        "pid": "",
        "keyword": "北京",
        "pageIndex": str(pageNum),
        "pageSize": "10",
    }
    #参数:data是用来实现参数动态化,等同于get方法中的params参数的作用
    response = requests.post(url=url,headers=headers,data=data)
    page_text = response.json()
    for dic in page_text['Table1']:
        pos = dic['addressDetail']
        print(pos)
相关文章
|
7月前
|
传感器 数据采集 数据处理
振弦采集仪的操作方法及数据处理技术的一般步骤
振弦采集仪的操作方法及数据处理技术的一般步骤
振弦采集仪的操作方法及数据处理技术的一般步骤
|
17天前
|
数据采集 传感器 监控
MES系统的实时数据采集和监控功能具体如何实现?
MES系统(制造执行系统)通过与PLC、SCADA系统集成,加装传感器和使用物联网技术,结合条码与RFID技术、图像识别、云计算等手段,实现生产过程的全面实时数据采集和监控,确保数据的实时性和准确性,支持生产优化和决策。
|
13天前
|
数据采集
FOXBORO H92A049E0700 具备数据采集和分析功能
FOXBORO H92A049E0700是美国福克斯波罗公司生产的高质量、稳定性的工业自动化产品,广泛应用于电力、石油、化工等行业,具备先进技术、高灵活性及可扩展性,适用于过程控制、数据采集与分析等场景。
18 2
|
6月前
|
数据采集 消息中间件 存储
数据采集方法
【6月更文挑战第21天】数据采集方法。
115 3
EMQ
|
7月前
|
数据采集 消息中间件 并行计算
NeuronEX 3.2.0 发布:增强数据采集、分析计算和管理功能
工业边缘网关软件 NeuronEX 3.2.0 版本现已正式发布,本次发布带来了一系列的增强功能和新特性,旨在为用户提供更多数据采集、分析计算以及管理的能力。
EMQ
111 2
NeuronEX 3.2.0 发布:增强数据采集、分析计算和管理功能
|
7月前
|
数据采集 缓存 监控
通过动态IP解决网络数据采集问题
通过动态IP解决网络数据采集问题
116 1
|
7月前
|
Prometheus 监控 关系型数据库
监控数据的几种采集方式
【1月更文挑战第14天】
|
传感器 编解码
开发振弦采集模块的注意事项
振弦采集模块是一种常见的传感器模块,它可以测量物体的振动情况以及振动频率等参数。在很多领域中都有广泛的应用,比如机械制造、地震监测、汽车安全等。因此,开发振弦采集模块是非常重要的工作。
开发振弦采集模块的注意事项
|
数据采集 Java 大数据
大数据数据采集的数据采集(收集/聚合)的Logstash之强大的插件功能
在大数据领域中,Logstash是一款非常流行的数据采集工具。它具有丰富的插件功能,可以完成各种不同数据来源的数据采集任务。本文将介绍Logstash的插件功能,并为大家介绍几款强大的插件。
194 1
|
数据采集 传感器 物联网
数据采集技术基础
数据采集技术基础
560 1
数据采集技术基础