Python【如何绕过防盗链策略】referer

news/2023/5/28 7:53:34
# 梨视频首页访问地址 :https://www.pearvideo.com/video_1752989
# 地址1 https://www.pearvideo.com/videoStatus.jsp?contId=1752989&mrd=0.11273598427974241
# 地址2 https://video.pearvideo.com/mp4/third/20220228/1674040398156-10787886-192545-hd.mp4
#地址2 是从地址一中解析的页面中解析自认为可以播放的地址,地址1 是从首页访问地址刷新而来
import pprintimport requests
from lxml import etree
if __name__ == "__main__":url_home = 'https://www.pearvideo.com/'headers = {'User-Agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Mobile Safari/537.36'}resp_home = requests.get(url=url_home,headers=headers)resp_home.encoding = 'utf-8'page_text = resp_home.texttree = etree.HTML(page_text)page_href = tree.xpath('//div[@class="vervideo-tbd"]/a/@href')[0] #page_href : video_1722858print(page_href)
#    page_href是获取的首页地址,他和视频地址存在某种相同关系,相同的地方就是page_href 中的末尾数字为可以访问下载的视频地址video_url中的contId值。contId = page_href.split('_')[-1]# split 是Python中的内置函数,作用实现对字符串进行分割,分割后的字符串以列表形式返回video_url = f'https://www.pearvideo.com/videoStatus.jsp?contId={contId}&mrd=0.11273598427974241'# video_json = requests.get(video_url)# print(video_json)# 反爬机制:防盗链referer
# 比如你从csdn的首页点进我的这篇文章,防盗链机制运营逻辑是,你点进我的这篇前是从哪里进来的,判断请求来源哪里
# 如何躲避防盗链检测,在请求headers中添加 “Referer“:urlheaders_two = {"User-Agent":"'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Mobile Safari/537.36'",# 拼接主页面地址: 通过测试page_href输出结果得到了视频的动态地址:#                 视频地址 https://www.pearvideo.com/video_1722858# 发起请求的url:url_home = 'https://www.pearvideo.com/'# 从页面获取的部分动态地址page_href:                              video_1722858"Referer":url_home+page_href}#因为可以访问到视频url在数据页面找不到,先找到原则上可以访问到视频的地址,下面会对这一地址进行替换修改,让它能访问得到。video_json = requests.get(video_url,headers=headers_two).json()pprint.pprint(video_json)# 我们需要对获取到的‘srcUrl’原则上可以请求到视频的地址中的某一参数进行替换我们才能访问成功。# 先获取到自认为可以播放urlsrcUrl = video_json.get('videoInfo').get('videos').get('srcUrl')#经过打印srcUrl 可以获取到自认为能请求到的地址print(srcUrl)# systemtime 我们需要这个参数吗? 不知道先拿出来看看,通过理清我们需要干什么?,来确定需不需要这个数据systemTime = video_json.get('systemTime')#拿到的systemTime 其实就是请求的时间,因为下方需要对这一数据进行替换,显然我们是需要systemTime这个数据的。print(systemTime)#替换获取到的 srcUrl地址信息,因为获取到的地址访问不通,经过替换参数就可以访问的通。#获取到的systemTime https://video.pearvideo.com/mp4/adshort/20210310/1674049092504-15627576_adpkg-ad_hd.mp4#其中需要将   1674049092504(这串数字就是 systemTime) 替换为 cont-page_href(page_href 打印的结果),NeW_url = srcUrl.replace(systemTime,f"cont-{contId}")#本次发起的请求,是可以获取得到视频信息的url,  .content是变为bytes流数据,视频和图片一般转化成.content 输出video_content = requests.get(NeW_url,headers=headers).content#写入存储文件fp = open('D://xiaoli//lishipin.mp4','wb')fp.write(video_content)fp.close()
print("over")#反爬机制:防盗链referer
#比如你从csdn的首页点进我的这篇文章,防盗链机制运营逻辑是,你点进我的这篇前是从哪里进来的,判断请求来源哪里
#如何躲避防盗链检测,在请求headers中添加 “Referer“:url# 拼接主页面地址: 通过测试page_href输出结果得到了视频的动态地址:
#                 视频地址 https://www.pearvideo.com/video_1722858
#发起请求的url:url_home = 'https://www.pearvideo.com/'
#从页面获取的部分动态地址:                              video_1722858
#第一个视频获取从network获取的url
#https://www.pearvideo.com/videoStatus.jsp?contId=1722858&mrd=0.05088404952821657
#第二个视频获取的url
#https://www.pearvideo.com/videoStatus.jsp?contId=1752989&mrd=0.11273598427974241
# 从视频地址中找到contId,经过测试由于contId的数据是变化的而且是关键,末尾mrd中的数据是随机生成的,而且不会影响视频播放地址的获取。

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

如若内容造成侵权/违法违规/事实不符,请联系郑州代理记账网进行投诉反馈,一经查实,立即删除!

相关文章

让一群脑洞清奇的开发者告诉你,AI+产业的N种可能

一般来看,一场成功的、胜利的AI行业大会,往往是这样的:主持人大谈AI技术是多么神奇、智能转型多么重要、产业价值多么庞大。然后一群专家(最好有外国人,配上同声传译)相互讨论,取代人类、奇点临…

大富网络、拓尔思、恒信东方、金马游乐……上市公司如何布局元宇宙?丨2022元宇宙云峰会...

4 月 20 日上午,由巴比特主办的“万物起源・2022 元宇宙云峰会”正式开幕。在圆桌论坛《上市公司的元宇宙布局》中,国盛证券区块链研究院院长宋嘉吉与大富网络联合创始人庞思渊、拓尔思信息技术股份有限公司副总经理林松涛、恒信东方首席技术官李小波以及…

ue4c++日记4(控制pawn类的运动|创建游戏模式|)

目录 代码速查 调用数学公式 获取位置/设置位置 绑定玩家输入按键,UE4传值给函数进行处理 约束获得的值再输出 创建对象 对象绑定到xxx上 设定默认玩家 实例:sin函数实现往复运动 实例:删除c类 1.删掉cpp和.h文件 2.删编译好的文件B…

Linux创翼拨号上网,创翼客户端下载(网络拨号工具) v4.11.4.731 最新版_数码资源网...

现在各个大学已经宽带入户了,所以呢这款创翼客户端推荐给大家,这是一个网络拨号工具,支持电信宽带,熟知校园客户端的朋友都知道校园网是拨号登录的,因此这款创翼客户端是必备的软件,校园用户必须通过它才可以顺利进行网络连接,享受高速的网上冲浪体验,可…

23种设计模式(九)——抽象工厂模式【对象创建】

文章目录 意图什么时候使用抽象工厂真实世界类比解决方案抽象工厂模式的实现抽象工厂模式的优缺点亦称: Abstract Factory 意图 抽象工厂是创建型设计模式,它强调了一系列相关产品对象(属于同一个产品族)的创建过程,它和工厂方法模式的侧重点不同,工厂方法模式更加侧重于…

VISUAL C++ MFC/ATL开发-高级篇

在VC6.0中用MFC进行COM编程首先应当明确,MFC中是通过嵌套类而不是多重继承来实现COM接口的,通过接口映射机制将接口和实现该接口的嵌套类关联起来;MFC中提供一套简明的宏来实现嵌套类的定义.其次,MFC通过CCmdTarget类实现了IUnkno…

【Java架构:基础技术】一篇文章搞掂:Java 8

本文篇幅较长,建议合理利用右上角目录进行查看(如果没有目录请刷新)。 一、Java的历史与演变 目的:为完全了解Java,需要理解Java的诞生原因、成型动力以及他继承的思想。 计算机语言的创新与发展的原因:适…

APUE第10章 信号

第10章 信号 signal10.1 引言 信号是软件中断。很多比较重要的应用程序都需处理信号。信号提 供了一种处理异步事件的方法,例如,终端用户键入中断键,会通过信 号机制停止一个程序,或及早终止管道中的下一个程序。 UNIX系统的早期…

走好每一步,基于C实现机器人运动学建模与标定、运动规划、轨迹规划算法

走好每一步,基于C实现机器人运动学建模与标定、运动规划、轨迹规划算法废话综述一:C部分初始C语言Chapter2-4:基本数据类型Chapter5-7:运算符、表达式、循环、分支与跳转Chapter9/10/14:函数、数组、结构体、指针函数数组指针结构体综合文件I/OC预处理、…

C++ Primer Plus(嵌入式公开课)---第5,6章 循环和关系表达式 分支语句和逻辑运算符

20220222 C Primer Plus - 第五、六章附录:1.ASCII码字符对照表2.C 运算符优先级第1-3章第4章 复合类型第5章 循环和关系表达式5.1 for循环5.1.1 for循环的组成部分---表达式和语句的区别、输出true和false5.1.2 回到for循环---const int SIZE 10;为什么…

Probabilistic Volumetric Fusion for Dense Monocular SLAM

论文标题:Probabilistic Volumetric Fusion for Dense Monocular SLAM 论文链接:https://arxiv.org/pdf/2210.01276.pdf 论文思想 提出了一种新的方法,通过利用深度密集的单眼SLAM和快速不确定性传播,从图像中重建三维场景 所提…

java给pdf文件电子签章

电子签章简介: 电子签章,与我们所使用的数字证书一样,是用来做为身份验证的一种手段,泛指所有以电子形式存在,依附在电子文件并与其逻辑关联,可用以辨识电子文件签署者身份,保证文件的完整性,并…

苏红超:多云融合的电子签章服务平台实践

7月2日,由中国信息通信研究院主办的“2019可信云大会”在北京召开,法大大高级副总裁兼CTO苏红超受邀出席,分享《多云融合的电子签章服务平台实践》,同时,“法大大文印安全解决方案”及“合同碎片化安全存储机制”两项重…

电子签章pdf文件之我见

现在电子签章主要针对pdf文件,所以如果要验签,那么必须要熟悉pdf文件结构。Pdf文件知识点较多,仅pdf标准文档就已经到第7版了,最后一个版本就有800页,学习起来难度相对较大,但如果仅仅是为了验签&#xff0…

别再做“敲章机器”了!电子签章助力组织印章使用安全高效

公司签下大单本是一件开心的事。但对于负责合同敲章的小伙伴来说,给一份几十页甚至几百页的合同盖章可犹如噩梦。 且不说一份合同上公章、法人章要确保一处不落地盖好,光是骑缝章、角章(即每一页都要盖章)盖下来,怕是…

web报表中电子印章/水印的轻松实现

报表数据系统中,有一个重要功能叫做电子签章,通俗的讲,就是不需要实际去盖章,而直接把图章打印到纸质文件上,省去手工盖章的费时费力环节,例如,银行系统中的银行流水打印,都需要盖章…

游戏人工智能之操纵行为Steering behaviors—避墙avoidance wall

游戏人工智能之操纵行为Steering behaviors—避墙avoidance wall 游戏人工智能中,操纵行为是很重要的一部分基础,很多地方需要用到。基本的操纵行为有靠近Seek、远离Flee、抵达Arrive、追逐Pursuit、逃离Evade、随机徘徊Wander、路径跟随Path Following…

自动驾驶 6-4 高级转向控制 - MPC Advanced Steering Control - MPC

在上一个视频中, 我们研究了斯坦利控制器 用于横向路径跟踪控制。 在本视频中,我们将探索 先进的应用控制策略, 称为模型预测控制或 MPC, 了解如何合并 控制器设计中的动态建模。 特别是在这个视频中, 我们将描述 MPC …

从阵列导向矢量 steering vector -----> S-V MIMO model

Ref: [1] [Sum and difference coarray based MIMO radar array optimization with its application for DOA estimation] [2] Tse的“Fundamental wireless communications"中 第7章 在看论文的过程中,常用经典的信道S-V model如下 H∑l1Lαlar(θ)atH(γ)\b…

传输层协议:套接字Socket

介绍 socket是一种操作系统提供的进程间通信机制。 在操作系统中,通常会为应用程序提供一组应用程序接口(API),称为套接字接口(英语:socket API)。应用程序可以通过套接字接口,来使…