Python爬取蓝奏云直链(获取真实文件地址)

本文介绍了如何使用Python爬取蓝奏云的分享链接,以获取文件的真实下载地址。作者通过分析分享链接和浏览器开发者工具,揭示了蓝奏云直链的获取过程,包括解析ajaxm.php的响应,构造POST请求参数,以及处理重定向的Accept-Language头信息,从而实现从分享链接到实际文件地址的转换。
摘要由CSDN通过智能技术生成

最近在用蓝奏云,这款云盘无限速并且操作分享简单,自认为挺好的一个云盘,所以研究了如何通过蓝奏云分享链接获取文件最终地址。你可能问爬取直链有什么用,我说一下我的需求,我的服务器学生机带宽是1m,很小。我运营着自己的app,我想要为用户提供升级更新,如果把最新安装包放在我服务器上,1m就是128k/s,下载一个10m的安装包都要好长时间,但是如果我们将安装包放在云盘上,每次用户请求更新,我们只需要即时获取安装包在蓝奏云的真实地址返回给用户,这样用户直接从获取蓝奏云获取apk文件,下载速度比直接从自身1m带宽服务器快多了。所以,蓝奏云可以作为我们存放共享资源文件的地方。

  1. 直接以我云盘上存放的一首歌为例子,讲解如何爬取蓝奏云直链。这个音乐分享地址为https://www.lanzous.com/i3xcmaf
  2. 先贴完整代码
#coding=utf-8
from bs4 import BeautifulSoup
import requests
import re
import json

#蓝奏云分享文件链接地址
url = 'https://www.lanzous.com/i3xcmaf'

#header头,注意那个referer必须要与上面文件分享地址url相同
headers = {
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.3',
    'referer': url
}

# 获取分享页面html文件
res = requests.get(url,headers=headers)

# 引入BeautifulSoup库对html进行处理,获取iframe中的出现的js文件
soup = BeautifulSoup(res.text,'html.parser')
url2 = 'https://www.lanzous.com/'+soup.find('iframe')['src']
res2 = requests.get(url2,headers=headers)

# 正则提取请求三个参数
a = re.findall(r'var a = \'([\w]+?)\';',res2.text)
params = re.findall(r'var [\w]{6} = \'([\w]+?)\';',res2.text)

# 请求下载地址
url3 = 'https://www.lanzous.com/ajaxm.php'
data = {
    &
  • 3
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值