前段时间面试题目中居然出现了:破解西瓜视频地址,获取可直接下载视频的地址。

使用工具

  1. Python 3.7.0
  2. requests库
  3. re库
  4. base64库

分析过程

确定视频资源下载地址

由于之前没有这方面的项目经历,在网上查找资料后,这篇文章给了我灵感(原来西瓜视频上的Url是经过Base64加密的),那么是如何确定西瓜视频上的Url是经过Base64加密的呢?

  1. 这个字符串仅有64个字符(A~Z a~z + / )以及后缀=组成
  2. 将目标字符串解密后再将解密字符串加密回去与原来的值做比较如果相同就是Base64
import requests
import re
from base64 import b64decode, b64encodeurl = 'https://www.ixigua.com/i6704446868685849092'headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36'
}resp =requests.get(url=url, headers=headers)ex = '''"main_url":"(.*?)"'''def doCheck(source):if bytes(source, encoding='utf-8') == b64encode(b64decode(source)):return Truereturn Falseif doCheck(re.findall(ex, resp.text)[0]):print('该Url是Base64加密!!!')
else:print('该Url不是Base64加密!!!')
下载测试
import requests
import re
from base64 import b64decode, b64encodeheaders = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36'
}url = 'https://www.ixigua.com/i6704446868685849092'resp =requests.get(url=url, headers=headers)ex = '''"main_url":"(.*?)"'''def doCheck(source):if bytes(source, encoding='utf-8') == b64encode(b64decode(source)):return Truereturn Falsedef getVideoUrl(source):return b64decode(source).decode('utf-8')source =re.findall(ex, resp.text)[0]if doCheck(source):resp = requests.get(url=getVideoUrl(source), headers=headers)with open('./Video.mp4', 'wb') as fp:fp.write(resp.content)
else:print('该Url不是Base64加密!!!')
运行结果

爬虫系列学习之爬取西瓜视频相关推荐

  1. python 爬视频下载_Python爬虫进阶之爬取某视频并下载的实现

    这篇文章我们来讲一下在网站建设中,Python爬虫进阶之爬取某视频并下载的实现.本文对大家进行网站开发设计工作或者学习都有一定帮助,下面让我们进入正文. 这几天在家闲得无聊,意外的挖掘到了一个资源网站 ...

  2. 爬取西瓜视频影视分类

    许久没有更新过博客了,今天帮朋友爬了西瓜视频,希望对喜欢python爬虫的朋友有所指引,希望大神批评指正. 每一个网站都或多或少有一点反爬虫机制,并持续添加新的爬虫机制,所以说针对每一个网站,爬虫规则 ...

  3. Python爬虫进阶之爬取某视频并下载,没有广告的视频看起来不爽吗?

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 本文章来着腾讯云 作者:python学习教程 意外的挖掘到了一个资源网站(你懂得) ...

  4. mfc ajax爬虫,另辟蹊径,爬取Ajax数据内容

    通常利用python 爬取ajax数据 有两种方式: ①基于selenium+phantomjs+python的动态爬虫技术 ②基于逆向分析 但是这两种方式都不太容易. 第一种利用selenium进行 ...

  5. python爬视频网站数据_python爬虫基础应用----爬取无反爬视频网站

    一.爬虫简单介绍 爬虫是什么? 爬虫是首先使用模拟浏览器访问网站获取数据,然后通过解析过滤获得有价值的信息,最后保存到到自己库中的程序. 爬虫程序包括哪些模块? python中的爬虫程序主要包括,re ...

  6. Python爬虫爬取Twitter视频、文章、图片

    Python爬虫爬取Twitter视频.文章.图片 Twitter的Python爬虫 https://github.com/bisguzar/twitter-scraper 2.2k星标 (2020. ...

  7. Python爬虫实现全自动爬取拉钩教育视频

    ps:改良之后的多线程版本在最后 背景 大饼加了不少技术交流群,之前在群里看到拉钩教育平台在做活动,花了1块钱买了套课程.比较尴尬的是大饼一般都会在上下班的路中学习下(路上时间比较久)而这个视频无法缓 ...

  8. python爬虫:Selenium爬取B站视频标题、播放量、发布时间

    上次尝试了利用Ajax机制爬取B站视频播放量等数据(链接在下方),但是发现响应的JSON数据中没有发布时间的数据,这次决定用Selenium试一下. python爬虫:Ajax爬取B站视频标题.播放量 ...

  9. python怎么爬取b站_【Python爬虫实例学习篇】——4、超详细爬取bilibili视频

    [Python爬虫实例学习篇]--4.超详细爬取bilibili视频 由于经常在B站上学习,但无奈于家里网络太差,在线观看卡顿严重,于是萌生了下载视频的想法(如果只是单纯想下载视频,请用you-get ...

最新文章

  1. 【shell变量替换】
  2. 减少企业Web威胁的三条预防性措施
  3. 利用世界杯,读懂 Python 装饰器
  4. SpringBoot + RabbitMQ (保证消息100%投递成功并被消费)
  5. 不懂编程的产品经理如何不被程序员吊打?
  6. SAP C/4HANA到底包含哪些产品?
  7. 无迹卡尔曼滤波(UKF)详解
  8. 文本居于图片左侧html,CSS实现图片与文本的居中对齐的常见方式
  9. 浏览器css透明属性opacity
  10. 解决微信端苹果手机无法跳转页面
  11. oracle exclude table,EXPDP/IMPDP:关于EXCLUDE参数
  12. GO 重新进阶学习(四)
  13. Android:打开和关闭输入法
  14. ERP : 产出控制
  15. 加载.npz文件时,出现错误:OSError: Failed to interpret file ‘xxx.npz‘ as a pickle
  16. 北京奇云计算机技术学校,好的计算机编程学校
  17. 个人作业——A001-185-2513-吴光华
  18. wordpress博客评论框添加背景图片
  19. 50和学习c/c++优秀网站
  20. windows7最大支持多少内存

热门文章

  1. 网站访问流程及原理分析
  2. 《超级演说家》刘媛媛:寒门贵子
  3. WEB打印控件Lodop的使用
  4. 大学毕业生参考信函提示
  5. python 打开excel并在屏幕上呈现_如何用Python打开Excel文件显示其内容?
  6. Techo TVP物联网开发者峰会青润的总结
  7. Android 100元平板也能吃鸡玩王者!小米平板刷机神盾dot1.2保姆级教程。
  8. 一键获取网易互娱内推攻略,快人一步拿offer!
  9. 五款微信编辑器优缺点评测
  10. 在sweetalert弹出窗插件中加入html代码