Python爬虫实战案例——第七例

文章中所有内容仅供学习交流使用,不用于其他任何目的!严禁将文中内容用于任何商业与非法用途,由此产生的一切后果与作者无关。若有侵权,请联系删除。

目标:LI视频采集

地址:aHR0cHM6Ly93d3cucGVhcnZpZGVvLmNvbS8=

在这里插入图片描述

主页分析

首先要明白我们本次任务的目标——下载页面中的视频(以人物为例),那么也就意味着我们最终的目的就是要找到视频的下载地址。

所以,在进入主页之后我们先来到人物板块这个页面。

在这里插入图片描述

在这里我们想要采集最新的数据,所以就需要定位到最新视频的标签。这里就可以直接打开开发者工具进行分析了。

在这里插入图片描述

可以看到最新视频是位于idcategoryListul标签之中。同时每一个视频就是一个li标签,那么到这里我们只需要确定这些数据是静态化存在于html结构中就能够使用xpath将其解析出来。直接刷新页面然后来到document

在这里插入图片描述

从这里来看可以确定我们能够直接使用xpath去解析这第一页的视频的详情页地址了(解析到但是不一定要去访问,这里我先写代码的时候就按照常规思路去访问了详情页然后找视频地址,但写过去之后发现视频地址是做了反爬处理的,从详情页也无法直接获取到)。

详情页分析

根据普遍的思路,我们访问详情页的目的就是要找视频的播放下载地址,所以我们来到主页之后一样先打开开发者工具,然后点击播放按钮进行抓包分析。

在这里插入图片描述

刷新播放之后抓到一个mp4文件,将url复制到浏览器访问会发现这就是视频的下载地址。那么问题就是这个地址从哪里来的呢,我们可以通过搜索url中 的一些特殊的字符查看,例如这些数字组合,根据以往的经验判断这些数字串必然是这个视频的id,而id必然就是唯一的存在。

在这里插入图片描述

但是如上图所示,我们从响应页面去搜索的话,是没有这个串的,那么也就意味着我们代码去访问详情页的话是无法获取到这个视频的播放地址的。所以这里就需要我们好好想想这个请求的流程了。首先对于浏览器来说,需要播放视频的时候,那么浏览器肯定是要对视频地址请求的,那请求的时候这个视频的播放地址必然在请求前已经是拿到了浏览器中,所以,播放前的播放地址,必然是位于动态加载或者静态的某一个文件当中。那么我们就来进行全局搜索查看一下。

在这里插入图片描述

动态静态两边的文件都搜索一下,最后在动态加载的包中找到了一个名为videoStatus.jsp的包,在这里面我们发现了一个MP4的播放地址(这个地址是有坑的,前面提过,但是大家可以先不看后面的内容,自己往后先写一下代码看看是否能够自己将这个坑填上)

所以,就是说我们在下载之前需要先访问这个videoStatus.jsp来获取视频地址,但是呢,在访问这个videoStatus.jsp的时候会发现如下问题。

在这里插入图片描述

这个呢明显就是网站的一个小反爬手段了,但是都不用去实践就知道问题必然是出在头信息里面,同一个浏览器(浏览器本案例中没有清理过也没有重新打开过)从网站访问的时候是正常的,但是复制url到新标签页访问就无法访问了,这明显和防盗链就算没有100%的关系那也有个99%了,所以这里将referer添加到请求头之后访问就能够成功了。

接下来说一下这个包中的播放地址的坑。

直接上对比,请看下方两个url,其中一个是访问videoStatus.jsp获取到的播放地址,一个是我们从media中找到的播放地址。

https://video.pearvideo.com/mp4/adshort/20200909/1698642033243-1427-203145_adpkg-ad_hd.mp4https://video.pearvideo.com/mp4/adshort/20200909/cont-1696358-1427-203145_adpkg-ad_hd.mp4

上面一个url是响应来的播放地址,下面一个url是抓包分析是media中的地址,将两个地址分别进行访问会发现上面个是无法访问的。

所以就需要我们手动将url进行修改才能够通过代码进行视频下载了。

这里处理起来也是比较容易得,我们很容易发现不同点就在**/**分割后的最后一部分,所以我们只需要将1698642033243改成cont-1696358就能够下载视频了

最后,关于翻页,翻页在本站中是动态页面加载的,当我们往下翻翻到最底部的时候就会加载出新的页面,所以我们就找到对应的参数进行修改即可。在本站中控制翻页的参数为start,跨度为24,只需要修改这个参数就OK,老生常谈的东西就不在浪费字数浪费时间了。

完整代码请移步:https://gitee.com/shuailiuquan/

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

顺序表练习

顺序表练习 图解插入与删除,详见相关内容:顺序存储结构的插入与删除 //顺序表的定义、创建、插入、删除、查找 //定义:结构体中数组、表长 //创建:输入元素,表长 //插入:判断表是否已满、判断位序合法性 //插入位序k…

51单片机晶体管数字编码

51单片机 单片机型号:STC86C52RC/LE52RC 晶体管 数字编码 数字P0P1P2P3P4P5P6P7011111100101100000211011010311110010401100110510110110610111110711100000811111110911110110 00011 11110x3F10000 01100x0620101 10110x5B30100 11110x4F40110 01100x6650110 110…

微服务框架SpringcloudAlibaba+Nacos集成RabbiMQ

目前公司使用jeepluscloud版本,这个版本没有集成消息队列,这里记录一下,集成的过程;这个框架跟ruoyi的那个微服务版本结构一模一样,所以也可以快速上手。 1.项目结构图: 配置类的东西做成一个公共的模块 …

win11系统自带便利签

步骤如下: 在搜索框输入 便笺 2. 打开及用。

CGAL+QT

先安装CGAL和QT 安装完QT其中MSVC 这两个没配置 1、x32配置选择的是 x64配置选择的是 2、CGAL 5.4.5 - Manual: Using CGAL on Windows (with Visual C) 参数文章配置一些环境变量 3、 测试 新建build 进行cmake QT、Boost、CGAL都自动匹配上了(环境变量已经配…

Tigger绕过激活锁/屏幕锁隐藏工具,支持登入iCloud有消息通知,支持iOS12.0-14.8.1。

绕过激活锁工具Tigger可以用来帮助因为忘记自己的ID或者密码而导致iPhone/iPad无法激活的工具来绕过自己的iPhone/iPad。工具支持Windows和Mac。 工具支持的功能: 1.Hello界面两网/三网/无基带/乱码绕过,可以完美重启,支持iCloud登录、有消…

PCL setCameraPosition 参数讲解

setCameraPosition 的原型如下void setCameraPosition (double pos_x, double pos_y, double pos_z,double view_x, double view_y, double view_z,double up_x, double up_y, double up_z, int viewport 0);pos_x pos_y pos_z为相机所在的位置view_x view_y view_z 是焦点所…

MaxQuant的安装和使用(linux OR windows)

目录 1. 安装2. 用法2.1 命令行方式(linux)2.2 GUI方式(windows)1) completeAndromeda配置/Configuration(2)数据上传/Raw files (14)组特异参数/Group-specific parameters(17)全局…

大模型该被知道的技术实现-面向垂直领域

一个高度清晰的思维导图截图奉上(下载:需3积分) 内容截图

ICC2: 如何在显示GUI操作产生的命令

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 ICC2:自定义快捷键和菜单 VIEW -> Perference -> Global Settings 把display commands in logging console 下面几个都勾上即可。

【Linux】虚拟机项目部署与发布

目录 一、Linux部署单机项目 1.1 优缺点 1.2 将项目共享到虚拟机 1.3 解压后将war包放入tomcat 1.4 数据库导入脚本 1.5 Tomcat启动项目 二、部署前后端分离项目 2.1 准备工作 2.2 部署SPA项目 2.2.1 nginx反向代理 2.2.2 SPA项目宿主机访问 一、Linux部署单机项目…

How to install the console system of i-search rpa on Centos 7

How to install the console system of i-search rpa on Centos 7 1、 准备1.1 、查看磁盘分区状态1.2、上传文件1.2.1、添加上传目录1.2.2、上传安装包1.2.3、解压安装包1.2.4、查看安装包结构 1.3、安装依赖包1.3.1、基础依赖包1.3.2 相关依赖 1.4、关闭防火墙1.5、解除SeLin…