当前位置: 首页 > news >正文

java $ 解析api_Java版抖音解析接口

没有调用第三方接口,纯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;

}

}

7f2785fb770d3a520d4edb5957129fe9.png

34858d94634c4d14fdd04af69424709f.png

34ef96255b14256dfd9e04a9ab715912.png

dcbc966e14fa8e050861be23f9d36730.png

码云链接:

相关文章:

  • java 10的 6次方_【Java】 剑指offer(15) 数值的整数次方
  • java 方法 返回值 int_关于java字节流类的read()方法返回值为int的思考
  • java 迭代器复制_java设计模式之迭代器模式
  • java取文件类型_java如何通过文件描述符获取文件类型
  • java pdb_当12C PDB遇上JDBC
  • java复选框添加选中事件_Java的JTable中添加JCheckBox,点击事件处理问题,求高手指点迷津...
  • java thread类是抽象类_抽象类详解
  • 摘要认证 java_摘要认证及实现HTTP digest authentication
  • ssdp java_SSDP 简单服务发现协议
  • suse tomcat mysql_suse 安装jdk和tomcat工作记录
  • javascript java 语法_JavaScript
  • java.lang.nullpointerexception:group_为什么会出现java.lang.nullpointerexception错误
  • java数组查找指定元素_Java在数组中查找指定元素的方法
  • k8s mysql volume_k8s实践(七):存储卷和数据持久化(Volumes and Persistent Storage)
  • java 能够完成多个http请求并回应_Java Web请求与响应实例详解
  • 【React系列】如何构建React应用程序
  • Angular 响应式表单之下拉框
  • ES6--对象的扩展
  • extract-text-webpack-plugin用法
  • Java Agent 学习笔记
  • javascript 哈希表
  • JavaScript 基础知识 - 入门篇(一)
  • JavaScript-Array类型
  • JavaScript标准库系列——Math对象和Date对象(二)
  • leetcode讲解--894. All Possible Full Binary Trees
  • Linux编程学习笔记 | Linux多线程学习[2] - 线程的同步
  • Mithril.js 入门介绍
  • Nacos系列:Nacos的Java SDK使用
  • NSTimer学习笔记
  • supervisor 永不挂掉的进程 安装以及使用
  • TiDB 源码阅读系列文章(十)Chunk 和执行框架简介
  • v-if和v-for连用出现的问题
  • 开发了一款写作软件(OSX,Windows),附带Electron开发指南
  • 罗辑思维在全链路压测方面的实践和工作笔记
  • 山寨一个 Promise
  • 使用Gradle第一次构建Java程序
  • 视频flv转mp4最快的几种方法(就是不用格式工厂)
  • 微信小程序:实现悬浮返回和分享按钮
  • 小程序测试方案初探
  • 一个完整Java Web项目背后的密码
  • FaaS 的简单实践
  • # 睡眠3秒_床上这样睡觉的人,睡眠质量多半不好
  • (4) openssl rsa/pkey(查看私钥、从私钥中提取公钥、查看公钥)
  • (Arcgis)Python编程批量将HDF5文件转换为TIFF格式并应用地理转换和投影信息
  • (html5)在移动端input输入搜索项后 输入法下面为什么不想百度那样出现前往? 而我的出现的是换行...
  • (TOJ2804)Even? Odd?
  • (独孤九剑)--文件系统
  • (离散数学)逻辑连接词
  • (欧拉)openEuler系统添加网卡文件配置流程、(欧拉)openEuler系统手动配置ipv6地址流程、(欧拉)openEuler系统网络管理说明
  • (四)汇编语言——简单程序
  • (原創) 如何讓IE7按第二次Ctrl + Tab時,回到原來的索引標籤? (Web) (IE) (OS) (Windows)...
  • (转)【Hibernate总结系列】使用举例
  • (转)全文检索技术学习(三)——Lucene支持中文分词
  • (转)视频码率,帧率和分辨率的联系与区别
  • .NET 3.0 Framework已经被添加到WindowUpdate