Python如何获取动态加载的数据呢 ?

news2024/12/22 17:56:36

大家早好、午好、晚好吖 ❤ ~欢迎光临本文章

如果有什么疑惑/资料需要的可以点击文章末尾名片领取源码

例子1:爬取dy电影中的电影详情数据

url:https://movie.douban.com/

1.什么是动态加载的数据:

我们通过requests模块进行数据爬取无法每次都是可见即可得,有些数据是通过非浏览器地址栏中得url请求到的地址。

而是其他请求请求到的数据,那么这些通过其他请求请求到的数据就是动态加载的数据。

(猜测有可能是js代码当咱们访问此页面时就会发送得get请求,到其他url中获取数据)

2.如何检测网页中是否存在动态加载得数据

在当前页面中打开抓包工具,捕获到地址栏中的url对应的数据包,

在该数据包的response选项卡搜索我们想要爬取的数据,

如果搜索到了结果则表示数据不是动态加载的,否则表示数据为动态加载的

3.如果数据为动态加载,那么我们如何捕获到动态加载的数据?

基于抓包工具进行全局搜索。

定位到动态加载数据对应的数据包,从该数据包中就可以提取出

  • 请求的url

  • 请求方式

  • 请求携带的参数

  • 看到响应数据

然后要分析参数跟url的关系。发现他有 ‘start’: ‘0’,‘limit’: ‘20’, 在url中有携带此参数,

此参数start就是从哪个电影开始。limit就是从开始之后显示多少个。

例如爬取前30个电影数据,就是start :0 到 limit :30 ,

例如start :2 到 limit :12,就是从第二个电影,再往后获取12个电影

所以我们开始写代码:获取从第10个开始后面的50个电影

'''
python资料获取看这里噢!! 小编 V:python10010 好友验证备注:6
即可获取文章源码/教程/资料/解答等福利,还有不错的视频学习教程和PDF电子书!
'''
url = 'https://movie.douban.com/j/chart/top_list'
params = {
    'type': '5',
    'interval_id': '100:90',
    'action': '',
    'start': '10',
    'limit': '50',
}
response = requests.get(url=url,params=params,headers=headers)
#.json()将获取的字符串形式的json数据序列化成字典或者列表对象
page_text = response.json()
#解析出电影的名称+评分
for movie in page_text:
    name = movie['title']
    score = movie['score']
    print(name,score)

例子2:分页爬取肯德基餐厅位置数据

分页数据的爬取操作

获取肯德基的餐厅位置数据

url:http://www.kfc.com.cn/kfccda/storelist/index.aspx

分析:

  1. 在录入关键字的文本框中录入关键字按下搜索按钮,发起的是一个ajax请求
    当前页面刷新出来的位置信息一定是通过ajax请求请求到的数据

  2. 基于抓包工具定位到该ajax请求的数据包,从该数据包中捕获到:

    • 请求的url

    • 请求方式

    • 请求携带的参数

    • 看到响应数据

#爬取的是第一页的数据
url = 'http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx?op=keyword'
data = {
    'cname': '',
    'pid': '',
    'keyword': '北京',
    'pageIndex': '1',
    'pageSize': '10',
}
#data参数是post方法中处理参数动态化的参数
get的参数用params,他会显示在url上。post用data!!!!
response = requests.post(url=url,headers=headers,data=data)
page_text = response.json()
for dic in page_text['Table1']:
    title = dic['storeName']
    addr = dic['addressDetail']
    print(title,addr)
'''
python资料获取看这里噢!! 小编 V:python10010 好友验证备注:6
即可获取文章源码/教程/资料/解答等福利,还有不错的视频学习教程和PDF电子书!
'''    
#爬取多页的话
分析之后处理data数据即可,pageIndex就是显示的页数。for循环,请求每一页的。
for page in range(1,9):
    data = {
        'cname': '',
        'pid': '',
        'keyword': '北京',
        'pageIndex': str(page),
        'pageSize': '10',
    }
    response = requests.post(url=url,headers=headers,data=data)
    page_text = response.json()
    for dic in page_text['Table1']:
        title = dic['storeName']
        addr = dic['addressDetail']
        print(title,addr)

例子3:药监总局每页的详情数据

url = http://125.35.6.84:81/xk/

我们get请求当前url,response选项卡中并未有各个企业的数据,

通过抓包工具搜索,发现是post请求了其他网址获取的数据,

所以我们通过这个post请求获取url发送请求

然后我们发请求获取到每页的数据。

但是我们需要每页中每个企业的详情页内容

我们点开详情页,发现get请求此页面response选项卡中没有数据,后来我们发现此页面也是动态加载的数据。

有个post请求发送获取数据

经过分析发现他是通过id来查询结果的,此ID在获取页面Json数据时每个企业都有

结果以上。

我们写代码获取前3页所有企业的详情信息

'''
python资料获取看这里噢!! 小编 V:python10010 好友验证备注:6
即可获取文章源码/教程/资料/解答等福利,还有不错的视频学习教程和PDF电子书!
'''
url = "http://125.35.6.84:81/xk/itownet/portalAction.do?method=getXkzsList"
for i in range(3):
    data={'on': 'true',
    'page': '1',
    'pageSize': '15',
    'productName': '',
    'conditionType': i,
    'applyname': '',
    'applysn': '',}
    response = requests.post(url=url,data=data).json()
    for w in response["list"]:
         print(w)
        data = {"id":w["ID"]}
        url =' http://125.35.6.84:81/xk/itownet/portalAction.do?method=getXkzsById'
        response = requests.post(url=url,data=data).json()
        print(response)

尾语

好了,今天的分享就差不多到这里了!

对下一篇大家想看什么,可在评论区留言哦!看到我会更新哒(ง •_•)ง

喜欢就关注一下博主,或点赞收藏评论一下我的文章叭!!!

最后,宣传一下呀~👇👇👇 更多源码、资料、素材、解答、交流 皆点击下方名片获取呀👇👇👇

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1099024.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue使用高德地图轨迹活动效果demo(整理)

在html页面引入您自己的key <script language"javascript" src"https://webapi.amap.com/maps?v1.4.15&key6b26c2c58770d13a4ecf2b96615dbaee"></script><template><div class"index"><div id"amapContain…

什么是粘包和半包问题

什么是粘包和半包问题 粘包 发送的是 ABC和DEF 接收到的是 ABCDEF 半包 发送的是 ABCD 接收到的是 AB 和 CD 为什么会有粘包问题? 因为 TCP 是面向连接的传输协议&#xff0c;它是以“流”的形式传输数据的&#xff0c;而“流”数据是没有明确的开始和结尾边界的&#xff0…

MIT6.5830 Lab1-Go tutorial实验记录(一

MIT6.5830 Lab1-Go tutorial实验记录&#xff08;一&#xff09; – WhiteNights Site 标签&#xff1a;Golang, 数据库 编写一个简单的http server。 前言 MIT数据库系统实验 在网上看到了这么个实验&#xff0c;刚好对golang和数据库比较感兴趣&#xff0c;于是开始跟着做实…

五大亮点探索互联网医院源码的创新应用方式

作为互联网医疗行业的专家&#xff0c;我将为您揭示互联网医院源码的五大创新亮点。随着数字化技术的迅猛发展&#xff0c;互联网医院源码成为了提升医疗服务质量和提供便捷就医体验的重要工具。现在&#xff0c;让我们一起深入探索这五大亮点&#xff0c;了解互联网医院源码在…

什么是人事RPA?人事RPA解决什么问题?人事RPA实施难点在哪里?

每家公司人力资源部门每天需要筛选适合自己公司岗位要求的人才并与之沟通邀约面试、每月全公司员工的考勤状态核对、业绩考核核对、入离职手续办理、新员工培训等等&#xff0c;每项业务流程都由人手操作&#xff0c;效率极低、流程繁琐、费时费力。HR部门每天面对的业务数据量…

基于Java的驾校教练预约管理系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09; 代码参考数据库参考源码获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者&am…

使用Linux远程连接OpenGauss数据库的步骤和方法

文章目录 前言1. Linux 安装 openGauss2. Linux 安装cpolar3. 创建openGauss主节点端口号公网地址4. 远程连接openGauss5. 固定连接TCP公网地址6. 固定地址连接测试 前言 openGauss是一款开源关系型数据库管理系统&#xff0c;采用木兰宽松许可证v2发行。openGauss内核深度融合…

COMMUTING CONDITIONAL GANS FOR MULTI-MODAL FUSION

方法 C f ^f f是分类器&#xff0c;P f ^f f(o i _i i​)是第i个物体出现的融合概率 作者未公布代码

Sectigo数字证书

安装SSL证书可以提供数据保护、确保身份真实性&#xff0c;并增强用户信任&#xff0c;从而提高网站的安全性和可信度。所以越来越多注重网络安全的技术人员在保障数据安全的手段上&#xff0c;选择直接安装SSL证书。 其中Sectigo的SSL证书是全球SSL证书市场占有率最高的CA公司…

电脑打开图片比例太大怎么调?这个方法又快又好用

别人给我们发送的图片&#xff0c;有许多打开之后提示图片太大&#xff0c;这种情况改怎么处理呢&#xff1f;其实可以使用图片改大小&#xff08;https://www.yasuotu.com/size&#xff09;功能来对图片尺寸大小修改就可以了&#xff0c;接下来就分享一个批量修改图片尺寸的方…

牛奶配送经营商城小程序的作用是什么

牛奶是老少皆爱喝的饮品&#xff0c;市场呈现大品牌多区域拓展形式&#xff0c;中小企业在经营中较为受限制&#xff0c;传统线下超市铺货占领的方式已经变得很低效&#xff0c;线下直营店和经销商在实际经营中面临难题。 线下经营受困&#xff0c;线上经营成为众商家扩大生意…

01_CookieWebStorage

1 Cookie Cookie的使用必须基于web服务器&#xff0c;因为Cookie的操作会跟随http请求进行。 Cookie&#xff0c;有时也用其复数形式 Cookies。类型为“小型文本文件”&#xff0c;是某些网站为了辨别用户身份&#xff0c;进行Session跟踪而储存在用户本地终端上的数据&#x…

水生物数据集

FishNet: A Large-scale Dataset and Benchmark for Fish Recognition, Detection, and Functional Traits Prediction FishNet 是一个大规模多样化的数据集&#xff0c;包含了来自 17357 种水生物的 94532 张精心整理的图像。这些图像根据水生物的生物分类学&#xff08;目、科…

数据挖掘之贝叶斯优化——前反馈特征的参数,估计特征的最佳数值

贝叶斯优化是一个全局优化方法&#xff0c;用于优化具有噪声的黑盒函数。这一方法在许多现实世界的问题中都有应用&#xff0c;特别是在那些评估目标函数的代价很高的场合&#xff0c;例如超参数调优。 背景&#xff1a; 为什么需要贝叶斯优化&#xff1f; 在数据挖掘、机器…

VBA窗体跟随活动单元格【简易版】

本篇博客与以往的风格不同&#xff0c;先上图再讲解。 这个效果是不是很酷&#xff0c;VBA窗体&#xff08;即UserForm&#xff0c;下文中简称为窗体&#xff09;可以实现很多功能&#xff0c;例如&#xff1a;用户输入数据&#xff0c;提供选项等等。如本博客标题标注&#…

分享一下微信小程序怎么实现积分商城功能

微信小程序是一种便捷、高效的应用程序&#xff0c;它可以帮助企业或商家快速搭建自己的线上平台&#xff0c;提供更好的服务和产品给用户。积分商城是小程序中一种常见的功能&#xff0c;它可以帮助企业或商家吸引和留住用户&#xff0c;提高用户的忠诚度和互动性。下面就以微…

苹果 Vision Pro 头显新专利:增加重量减轻颈部压力

上周&#xff0c;彭博社的古尔曼表示 Vision Pro 头显过重&#xff0c;导致开发者佩戴后出现明显的颈部疲劳。随后&#xff0c;便有人发现在美国商标和专利局&#xff08;USPTO&#xff09;公示的清单中&#xff0c;苹果公司又获得了一项Vision Pro的专利&#xff0c;该专利提…

【Linux学习笔记】下载工具yum

1. yum工具1.1. yum的安装1.2. yum的搜索1.3. yum的卸载 2. Linux和Windows互相传输文件2.1. rz命令2.2. sz命令 3. yum的下载源 1. yum工具 yum是Linux软件包的管理器&#xff0c;是一个软件。那么软件的本质是什么呢&#xff1f; 答案是指令&#xff01; 下面举几个简单的例…

如何管理消极怠工的员工?

消极怠工是指员工在工作中表现出缺乏积极性和主动性&#xff0c;对工作任务不负责任或者敷衍了事的行为。这种行为不仅影响了员工个人的工作效率和职业发展&#xff0c;也会对整个团队的工作氛围和效率产生负面影响。因此&#xff0c;如何管理消极怠工的员工成为了管理者需要面…

OA系统和ERP系统有什么区别?

在当今的企业管理领域&#xff0c;协同办公管理系统和ERP系统是两个非常重要的工具。它们在企业的日常运营中扮演着不同的角色&#xff0c;有着各自独特的功能和优势。那么&#xff0c;OA系统和ERP系统到底有什么区别呢&#xff1f;协同办公管理系统又是如何在这两者之间发挥协…