首页 编程教程正文

用python获取斗鱼直播真实地址的一个思路,另附java代码

piaodoo 编程教程 2020-02-22 22:17:23 1804 0 python教程

本文来源吾爱破解论坛

本帖最后由 huhus123 于 2020-2-22 10:25 编辑

首先,斗鱼的真实地址是
[] 纯文本查看 复制代码

http://tx2play1.douyucdn.cn/live/”+房间号+9位随机字母+".flv"


所以问题的关键是如何获得“房间号+9位随机字母”
这个是主播每次开播都会变得。

如何获取呢?
在这里提供一种思路,不需要计算sign

打开斗鱼直播,按F12,随便用鼠标指向一个直播缩略图

QQ截图20200222093156.png (106.07 KB, 下载次数: 0)

下载附件  保存到相册

打开斗鱼,鼠标指向一个直播缩略图

2020-2-22 09:39 上传


可以看到一个post请求,查看响应结果有一个json数据,里面有一个key记录了我们想要的东西

QQ截图20200222093248.png (22.45 KB, 下载次数: 0)

下载附件  保存到相册

可以看到有个post请求

2020-2-22 09:39 上传




于是,只需要把这个信息过滤出来就可以了
首先构造请求头

QQ截图20200222094941.png (23.8 KB, 下载次数: 0)

下载附件  保存到相册

2020-2-22 09:53 上传


这三个数据很重要,记得一定要带上,不需要更改不需要重新计算
请求头如下
[Python] 纯文本查看 复制代码
headers = {
    "Host": "playweb.douyucdn.cn",
    "Referer": "https://www.douyu.com/directory/myFollow",
    "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML: like Gecko) Chrome/68.0.3440.84 Safari/537.36",
    "Content-Type": "application/x-www-form-urlencoded",
    "rid": "7032776",
    "time": "1582335104602",
    "auth": "55e455300a056206949e12459524e81b",
}


现在的url和之前的不太一样的,用原来抓的api
[Python] 纯文本查看 复制代码
requests.post("http://playweb.douyucdn.cn/lapi/live/hlsH5Preview/11579?rid=11579&did=2dfd02149496030e407b1e3900031501",headers=headers)


rid后面的和问号之前的都是你想获取的直播间房间号,前提是这些房间号支持h5preview的功能,如果不支持就会返回不支持。
接着就提取我们要的信息就可以了。
直接上代码吧
[Python] 纯文本查看 复制代码
import requests

def header():
    headers = {
        "Host": "playweb.douyucdn.cn",
        "Referer": "https://www.douyu.com/directory/myFollow",
        "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML: like Gecko) Chrome/68.0.3440.84 Safari/537.36",
        "Content-Type": "application/x-www-form-urlencoded",
        "rid": "7032776",
        "time": "1582335104602",
        "auth": "55e455300a056206949e12459524e81b",
    }
    return headers

def get_addr(rid):
    ret = requests.post(
        "http://playweb.douyucdn.cn/lapi/live/hlsH5Preview/{}?rid={}&did=2dfd02149496030e407b1e3900031501"
            .format(rid, rid),headers=header())
    try:
        addr = "http://tx2play1.douyucdn.cn/" + ret.json()['data']['rtmp_live'].split("_")[0] + ".flv"
        return addr
    except:
        return ret.json()['msg']

print(get_addr(312212))


运行结果
[Asm] 纯文本查看 复制代码
http://tx2play1.douyucdn.cn/312212rvVNjjBLWk.flv


把这个地址添加到potplayer,vlc,video.js等播放器器可以直接播放

写到最后:
       有人说为什么要抓取直播源呢?从我个人的角度来说,我的显示器是带鱼屏,在斗鱼直播看的时候全屏观看支持不是很好,原来的插件也
不能用了,另外就是广告比较多,不喜欢开弹幕,所以不如自己爬取一些直播地址在播放器上看,我自己也写了一个基于vlc的观看斗鱼直播的播放器
直接可以观看,还不是很完善,暂时不放出来了。


再次申明一点,这个方法不是所有直播都支持!还有一个可以获取的方法是通过计算sign获取,这个sign的算法在网页的js里,需要解析js脚本里面的function
后续再讲吧。


忘记说了,之前还用java写了一个gui,输入房间号直接获取。我就不另开贴了
[Java] 纯文本查看 复制代码
package getLiveInfo;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;

import java.lang.String;


public class GetLiveInfo {
	
	public static String sendPost(String url, String param){
		OutputStreamWriter out = null;
		BufferedReader reader = null;
		String res = "";
		try {
			URL httpUrl = new URL(url);
			HttpURLConnection conn = (HttpURLConnection) httpUrl.openConnection();
			conn.setRequestProperty("Host", "playweb.douyucdn.cn");
			conn.setRequestProperty("Referer", "https://www.douyu.com/directory/myFollow");
			conn.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.84 Safari/537.36");
			conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
			conn.setRequestProperty("rid", "这里改成抓包获取的数据和time,auth关联");
			conn.setRequestProperty("time", "同上");
			conn.setRequestProperty("auth", "同上");
			conn.setUseCaches(false);
			conn.setInstanceFollowRedirects(true);
			conn.setDoOutput(true);
			conn.setDoInput(true);
			conn.connect();
			
			out = new OutputStreamWriter(conn.getOutputStream());
			out.flush();
			reader = new BufferedReader(new InputStreamReader(conn.getInputStream(), "utf-8"));
			String line;
			while ((line = reader.readLine()) != null) {
				res += line;
			}
			reader.close();
			conn.disconnect();
		}catch (Exception e) {
			System.out.println("发送 POST 请求出现异常!" +e);
			e.printStackTrace();
		}
		finally {
			try {
				if(out!=null) {
					out.close();
				}
				
				if(reader!= null) {
					reader.close();
				}
			}
			catch(IOException ex) {
				ex.printStackTrace();
			}
		}
		return res;
	}
	public static String main(String roomid){
		String ret = GetLiveInfo.sendPost("http://playweb.douyucdn.cn/lapi/live/hlsH5Preview/"+roomid+"?rid="+roomid+"&did=", "");
		try {
			String[] strarray = ret.split(":")[8].split("_")[0].split("\"");
			ret = "http://tx2play1.douyucdn.cn/"+strarray[1]+".flv";
		}catch(ArrayIndexOutOfBoundsException e) {
			String[] strarray = ret.split(":")[2].split("\"");
			ret = strarray[1];
		}
		return ret;
	}
}

版权声明:

本站所有资源均为站长或网友整理自互联网或站长购买自互联网,站长无法分辨资源版权出自何处,所以不承担任何版权以及其他问题带来的法律责任,如有侵权或者其他问题请联系站长删除!站长QQ754403226 谢谢。

有关影视版权:本站只供百度云网盘资源,版权均属于影片公司所有,请在下载后24小时删除,切勿用于商业用途。本站所有资源信息均从互联网搜索而来,本站不对显示的内容承担责任,如您认为本站页面信息侵犯了您的权益,请附上版权证明邮件告知【754403226@qq.com】,在收到邮件后72小时内删除。本文链接:http://www.piaodoo.com/8122.html

评论

搜索

游戏网站源码,织梦网站源码,wordpress,wordpress主题,wordpress下载,wordpress插件,wordpress.com,wordpress模板,wordpress教程,wordpress 主题,wordpress安装,wordpress 模板,wordpress 插件,wordpress主题下载,wordpress企业主题,wordpress seo,wordpress主题开发,wordpress theme,wordpress论坛,wordpress 企业主题,wordpress主机,wordpress中文主题,wordpress cms主题,wordpress plugin,wordpress 主题下载,wordpress 主机,wordpress空间,wordpress mu,wordpress 模版,wordpress汉化主题,wordpress淘宝客主题,wordpress 空间,wordpress代码,WORDPRESS HOSTING,wordpress优点,wordpress安卓客户端,wordpress技巧,wordpress换空间,wordpress themes,网站模板,ppt模板网站,模板网站,企业网站模板,网站设计模板,免费网站模板,个人网站模板,ppt模板下载网站,网站模板下载,公司网站模板,门户网站模板,学校网站模板,网站首页模板,网站模板免费下载,旅游网站模板,网站后台模板,免费网站模板下载,传奇网站模板,网站建设模板,外贸网站模板,网站 模板,个人主页网站模板,个人网站模板下载,政府网站模板,音乐网站模板,导航网站模板,免费企业网站模板,企业网站模板下载,手表网站模板,韩国网站模板,汽车网站模板,教育网站模板,网站后台管理模板,班级网站模板,新闻网站模板,房产中介网站模板,旅游网站模板下载,工艺品网站模板,电子商务网站模板,旅游网站设计模板,团购网站模板,flash网站模板,个人网站设计模板,婚庆网站模板,广告公司网站模板,商业网站模板,手机网站模板,免费模板网站推荐,ppt免费模板网站推荐,织梦网站模板,html网站模板建站,网站html模板,免费个人网站模板,公司网站源码,sns源码,彩票网站源码,周易网站源码,源码基地,交友源码,学校网站源码,asp.net 源码,源码天下,jsp网站源码,论坛源码下载,广告联盟源码,建站源码,delphi源码,源码爱好者,酷源码,net源码,源码超市,医疗网站源码,flash源码,搜源码,源码程序,dede源码,新闻网站源码,易语言源码大全,旅游网站源码下载,flash 源码,免费源码论坛,android游戏源码,电脑维修网站源码,30源码网,股票软件源码,卖源码,源码教程,安居客 源码,vip源码,家教源码,.net源码下载,Web源码,网络公司源码,佛教网站源码,android源码学习,房产源码,钓鱼网站源码,775源码屋,web游戏源码,成品网站 源码78w78不用下载,h5游戏网站源码,asp网站源码下载,webgame源码,电子商务网站源码,vb.net源码,乐嘿源码,8a商业源码论坛,fbreader源码,在线客服系统 源码,google源码,.net网站源码,快递查询源码,源码搜藏网,dede整站源码,周易 源码,52源码论坛,财经网站源码,织梦下载站源码,qq钓鱼网站源码,flash游戏源码,房产网源码,源码搜搜,电子商务源码,团购网站源码,团购网源码,jsp源码下载,jsp源码,h站源码,8a源码,婚纱摄影网站源码,易语言盗号源码,x站源码,qq空间psd源码,免费商业源码,笑话网站源码,源码集合,源码家园,啊哦源码,星期六源码,源码熊,阿奇源码,百分百源码网,一手日源码资源,旅行网站源码,b站工程源码泄露,新站长源码,8a商业源码,asp论坛源码,flash源码下载,404源码社区,创业网站源码,php网页源码,易支付源码,成品网站w灬源码,免费CMS成品网站源码,成品网站W灬源码1688仙踪林,成品APP短视频源码下载网站,成品网站源码1688可靠吗,免费B2B网站源码,成品APP直播源码下载,国外儿童网站源码在线,成品网站W灬源码1688,源码,成品网站w灬 源码1688,免费源码网站都有哪些,成品网站源码78W78隐藏通道1,网站源码,源码网,源码网站,源码时代,源码之家,源码下载,php源码,易语言源码,源码论坛,源码是什么,商城源码,论坛源码,源码交易,源码站,源码库,免费源码,免费网站ja**源码大全,ja**源码,成品网站w灬源码1377,a5源码,站长源码,成品网站源码78W78隐藏通道1APP,源码分享,网站源码下载,源码中国,asp源码,源码社区,企业网站源码,php源码下载,成品app直播源码搭建,在线观看视频网站源码2021,旅游网站源码,安卓源码,通达信选股公式源码,神马影院php源码,c#源码,成品网站w灬源码1688网页,php 源码,网页游戏源码,android源码下载,源码吧,视频源码大全,成品短视频APP源码搭建,asp源码下载,私服源码,电脑维修源码,个人主页源码,源码出售,php网站源码,刀客源码,网址导航源码,导航网站源码,源码天空,asp 源码,软件源码,精品源码,成品网站源码1688自动跳转,个人网站源码,源码哥,在线考试系统源码,cms源码,c# 源码,商业源码,vb源码,门户网站源码,音乐网站源码,中国源码,安卓源码下载,asp网站源码,在线客服源码,电影网站源码,免费源码下载,整站源码,源码交易网,易语言源码网,.net源码,在线客服系统源码,淘客源码,卡盟源码,网站源码出售,vb源码下载,莎莎源码,熊猫烧香源码,asp.net源码,商业源码网,外贸网站源码,61源码网,zblog模板,zblog企业模板,帝国cms模板,帝国cms插件,discuz模板