首页 > 编程知识 正文

抖音 java,抖音解析源码

时间:2023-05-05 21:21:28 阅读:267477 作者:3838

没有调用第三方接口,纯Java代码完成

使用IDEA编辑器直接打开Douyin文件夹,文件夹已打包上传到网盘

Tools.java

package com.lhr;

import java.io.BufferedReader;

import java.io.InputStreamReader;

import java.net.URL;

import java.net.URLConnection;

public class Tools{

private String cookies="odin_tt=9a16fa42e650a96379a5901a3d146c7c244dc0c35971927f6e13c208fc4bcf9cc952542516f78dc9098ac4d179f3b127cddfdff2942d259dda9ca33de8ae7677; install_id=43619087057; ttreq=1$4c4b4cc4b31e6f2f4203b62a1df12b43e224434c; qh[360]=1";

public Tools(){

}

/**

*

* 这里获取作品ID

* */

public String getId (String url){

String result=sendGet(url);

result=getSubString(result,"/share/video/","/?");

return result;

}

/**

* 解析真实地址返回的数据其实是json格式的,Java语言本身不支持json解析,需要借助第三方jar

*

* 这里就直接使用getsubstring

*

* */

public String getUrl (String url){

String result=sendGet(url);

result=getSubString(result,"play_addr_lowbr","width");

result=getSubString(result,"url_list":["","","");

return result;

}

/**

* 取出中间文本

*

* */

private String getSubString(String str,String left,String right){

String strRight="";

int indexLeft = str.indexOf(left);

if(indexLeft==-1){

return "";//没有找到直接返回空以免出现异常

}else{

strRight=str.substring(indexLeft);

}

int length=str.length()-strRight.length();

int indexRight = strRight.indexOf(right);

if (indexRight==-1){

return "";

}

String result=str.substring(length+left.length(),length+indexRight);

return result;

}

private String sendGet(String url) {

String result = "";

BufferedReader in = null;

try {

URL realUrl = new URL(url);

//打开和URL之间的连接

URLConnection connection = realUrl.openConnection();

//设置通用的请求属性

connection.setRequestProperty("accept", "*/*");

connection.setRequestProperty("connection", "Keep-Alive");

connection.setRequestProperty("Accept-Encoding", "utf-8");

connection.setRequestProperty("Host", "api-hl.amemv.com");

connection.setRequestProperty("user-agent","okhttp/3.10.0.1");

connection.setRequestProperty("cookie",this.cookies);

//建立实际的连接

connection.connect();

in = new BufferedReader(new InputStreamReader(connection.getInputStream()));

String line;

while ((line = in.readLine()) != null) {

result += line;

}

}catch(Exception e) {

//发送异常

return "发送失败,请检查URL地址是否正确";

}finally{

try{

if(in != null){

in.close();

}

}catch(Exception e2) {

//关闭异常

System.out.println("关闭异常");

}

}

return result;

}

}

码云链接:

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。