吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2144|回复: 13
收起左侧

[求助] 爬到的下载链接,python下载文件都是1KB,而把链接放到360安全浏览器的下载或者迅

[复制链接]
ggtiancai 发表于 2022-11-10 00:05
25吾爱币
爬到的下载链接,python下载文件都是1KB,而把链接放到360安全浏览器的下载或者迅雷就可以下载。
想知道是怎么回事。
放几个下载地址:
https://dxc17yp8ltj-video-ali.lycheer.net/d2d58335vodtranssh1253442168/a7fbec1f387702306295739298/v.f100030.mp4?tmp=f30.mp4&auth_key=1668027435-3d8f949ce3-0-5cc1acf263ac82e536a9dc7a0cad8073
https://dxc17yp8ltj-video-ali.lycheer.net/d2d58335vodtranssh1253442168/aa632392387702306295849004/v.f100030.mp4?tmp=f30.mp4&auth_key=1668026840-a9307ac4d5-0-b9c6f4a58a8f310250654602ba1d3e89

打算下载这个地方的视频:
https://m.lizhiweike.com/lecture2/27885251

python 代码(临时写的,代码有点乱,见谅):
[Python] 纯文本查看 复制代码
import requests
import json

r_num = requests.get(
    "https://apiv1.lizhiweike.com/api/channel/1321444/lecture_list?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0eXBlIjoiQWNjb3VudFRva2VuIiwiaWQiOjgzMDE5MTEyLCJuaWNrbmFtZSI6IueIseWQg-eLl-mjn-eahOeMq_CfpJNjaXVtIiwic2V4IjoiMSIsInN0YXR1cyI6Im5vcm1hbCIsInN1YnNjcmliZWQiOjAsInJvbGUiOiJzdHVkZW50IiwidmVyc2lvbiI6IjEuMCIsImF2YXRhcl91cmwiOiJodHRwczovL2ltZy5seWNoZWVyLm5ldC9hdmF0YXIvMWU5YTI5MTA0NzhlYzEyYjMxNWYyZmMzMTIyNTUyNDcvYXZhdGFyIiwidGVsZXBob25lX3ZhbGlkYXRlIjpmYWxzZSwiY2xpZW50X2lwIjoiMzkuMTQ5LjE0LjExMCIsInRva2VuX2tleSI6Ik1DNDROREkzT0RVek1EWTNOakl5TmpNeiIsImlhdCI6MTY2ODAwMjg1OSwiZXhwIjoxNjY4MDI0NDU5fQ.l2qZ3YGGCZ9AcVWRy52dZva66lb3306wBb0MwBodeYI")
ls_num = []
ls_num = r_num.text
string_num = json.loads(ls_num)
ss = string_num["data"]["lectures"]
s = 0
a = {}
b = {}
for i in ss:
    a[s] = i["name"]
    b[s] = i["id"]
    print("第{0}个视频,视频名称为{1},视频编号为{2}".format(s, a[s], b[s]))
    s = s + 1
ls = []
ls_dizhi = []
for i in range(0, s):
    url_xiazai = "https://apiv1.lizhiweike.com/api/lecture/" + str(b[i]) + "/info?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0eXBlIjoiQWNjb3VudFRva2VuIiwiaWQiOjgzMDE5MTEyLCJuaWNrbmFtZSI6IueIseWQg-eLl-mjn-eahOeMq_CfpJNjaXVtIiwic2V4IjoiMSIsInN0YXR1cyI6Im5vcm1hbCIsInN1YnNjcmliZWQiOjAsInJvbGUiOiJzdHVkZW50IiwidmVyc2lvbiI6IjEuMCIsImF2YXRhcl91cmwiOiJodHRwczovL2ltZy5seWNoZWVyLm5ldC9hdmF0YXIvMWU5YTI5MTA0NzhlYzEyYjMxNWYyZmMzMTIyNTUyNDcvYXZhdGFyIiwidGVsZXBob25lX3ZhbGlkYXRlIjpmYWxzZSwiY2xpZW50X2lwIjoiMzkuMTQ5LjE0LjExMCIsInRva2VuX2tleSI6Ik1DNDROREkzT0RVek1EWTNOakl5TmpNeiIsImlhdCI6MTY2ODAwMjg1OSwiZXhwIjoxNjY4MDI0NDU5fQ.l2qZ3YGGCZ9AcVWRy52dZva66lb3306wBb0MwBodeYI"
    r = requests.get(url_xiazai)
    print(r)

    ls = r.text
    string = json.loads(ls)
    print(string["data"]["video_info"]["qcloud_video_file_id"])
    num = string["data"]["video_info"]["qcloud_video_file_id"]
    url_dizhi = "https://apiv1.lizhiweike.com/api/bridge/qcvideo/" + num + "?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0eXBlIjoiQWNjb3VudFRva2VuIiwiaWQiOjgzMDE5MTEyLCJuaWNrbmFtZSI6IueIseWQg-eLl-mjn-eahOeMq_CfpJNjaXVtIiwic2V4IjoiMSIsInN0YXR1cyI6Im5vcm1hbCIsInN1YnNjcmliZWQiOjAsInJvbGUiOiJzdHVkZW50IiwidmVyc2lvbiI6IjEuMCIsImF2YXRhcl91cmwiOiJodHRwczovL2ltZy5seWNoZWVyLm5ldC9hdmF0YXIvMWU5YTI5MTA0NzhlYzEyYjMxNWYyZmMzMTIyNTUyNDcvYXZhdGFyIiwidGVsZXBob25lX3ZhbGlkYXRlIjpmYWxzZSwiY2xpZW50X2lwIjoiMzkuMTQ5LjE0LjExMCIsInRva2VuX2tleSI6Ik1DNDROREkzT0RVek1EWTNOakl5TmpNeiIsImlhdCI6MTY2ODAwMjg1OSwiZXhwIjoxNjY4MDI0NDU5fQ.l2qZ3YGGCZ9AcVWRy52dZva66lb3306wBb0MwBodeYI"
    r_dizhi = requests.get(url_dizhi)
    ls_dizhi = r_dizhi.text
    str_dizhi = json.loads(ls_dizhi)
    print(str_dizhi["data"]["play_url"])

    down_file = requests.get(str_dizhi["data"]["play_url"], stream=True)
    with open(a[i] + '.mp4', 'wb') as f:
        for bl in down_file.iter_content(chunk_size=1024):
            if bl:
                f.write(bl)
        f.close

最佳答案

查看完整内容

最后一次request请求修改一下

免费评分

参与人数 1热心值 +1 收起 理由
zlf2020999 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Arcticlyc 发表于 2022-11-10 00:05
本帖最后由 Arcticlyc 于 2022-11-10 00:36 编辑

最后一次request请求修改一下

[Python] 纯文本查看 复制代码
down_file = requests.get(str_dizhi["data"]["play_url"], stream=True,
        headers = {
            'user-agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36',
            'referer': url_dizhi
        }
    )

免费评分

参与人数 2吾爱币 +2 热心值 +2 收起 理由
ggtiancai + 1 + 1 谢谢@Thanks!
pwp + 1 + 1 我很赞同!

查看全部评分

 楼主| ggtiancai 发表于 2022-11-10 01:24
Arcticlyc 发表于 2022-11-10 00:32
最后一次request请求修改一下

[mw_shl_code=python,true]

果然可以了,膜拜下大神,能讲下是因为啥么
三滑稽甲苯 发表于 2022-11-10 07:32
ggtiancai 发表于 2022-11-10 01:24
果然可以了,膜拜下大神,能讲下是因为啥么

简单来说就是你遇到了反爬机制
默不言 发表于 2022-11-10 07:47
ggtiancai 发表于 2022-11-10 01:24
果然可以了,膜拜下大神,能讲下是因为啥么

下载之前,对方的服务器会请求你的下载信息,其中包括电脑和软件的基本信息。比如系统版本、,使用的浏览器是什么版本的,类型的。没有设置这些,你的请求数据就会被识别为爬虫或者其他类型,就会被拒之门外。设置好之后,服务器识别你可以通过就可以下载。当然,这是第一步,也是最简单的反爬。第二步就是加入referer,意思是,你这个下载地址是从哪获取的。如果没有这个,也是无法下载的。

免费评分

参与人数 2吾爱币 +2 热心值 +2 收起 理由
从来不想 + 1 + 1 我很赞同!
Peach_WYY + 1 + 1 热心回复!

查看全部评分

leevingroom 发表于 2022-11-10 07:58
默不言 发表于 2022-11-10 07:47
下载之前,对方的服务器会请求你的下载信息,其中包括电脑和软件的基本信息。比如系统版本、,使用的浏览 ...

同问,真是想不明白,咋回事
898522783 发表于 2022-11-10 09:08
默不言 发表于 2022-11-10 07:47
下载之前,对方的服务器会请求你的下载信息,其中包括电脑和软件的基本信息。比如系统版本、,使用的浏览 ...

我也有个问题,就是链接在网站内可以播放。下载插件也可以下载,但是复制打开或者下载就不行。
Arcticlyc 发表于 2022-11-10 10:03
898522783 发表于 2022-11-10 09:08
我也有个问题,就是链接在网站内可以播放。下载插件也可以下载,但是复制打开或者下载就不行。

你这种一般就是referer的原因,不过也有可能是其他问题,可以把链接发出来看看
yt1010306 发表于 2022-11-10 11:05
没有模拟浏览器行为。
默不言 发表于 2022-11-10 11:06
898522783 发表于 2022-11-10 09:08
我也有个问题,就是链接在网站内可以播放。下载插件也可以下载,但是复制打开或者下载就不行。

下载下来无法播放,应该是视频加密了。要播放需要先解密。有兴趣你可以去看看M3U8的相关内容。这是目前主流的视频格式之一。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 06:52

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表