autojs下载bilibili封面

简介: 牙叔教程 简单易懂

牙叔教程 简单易懂


修改96行的url为视频播放链接即可.


原理:

获取网页源代码里的第一张图片, 后缀为jpg或者png, 我测了五六个视频是可以的

"ui";
/*
 * @version: 1.0
 * @Date: 2021-12-12 22:45:09
 * @LastEditTime: 2022-02-14 21:59:22
 * @LastEditors: 牙叔
 * @Description:
 * @FilePath: \autojs-test\main.js
 * @名人名言: 牙叔教程 简单易懂
 * @bilibili: 牙叔教程
 * @公众号: 牙叔教程
 * @QQ群: 747748653
 */
engines.all().map((ScriptEngine) => {
  if (engines.myEngine().toString() !== ScriptEngine.toString()) {
    ScriptEngine.forceStop();
  }
});
importClass(android.webkit.WebSettings);
ui.layout(
  <vertical id="main" padding="10 10 10 30" bg="#ff1e90ff">
    <scroll>
      <webview id="webView" />
    </scroll>
  </vertical>
);
var webView = ui.webView;
/* -------------------------------settings------------------------------------------- */
var settings = webView.getSettings();
// 手机头
settings.setUserAgentString("JUC (Linux; U; 2.3.7; zh-cn; MB200; 320*480) UCWEB7.9.3.103/139/999");
// printObj(settings)
settings.setLoadsImagesAutomatically(true); // 是否自动加载图片
settings.setDefaultTextEncodingName("UTF-8"); // 设置默认的文本编码 UTF-8 GBK
settings.setJavaScriptEnabled(true); // 设置是否支持js
settings.setJavaScriptCanOpenWindowsAutomatically(true); // 设置是否允许js自动打开新窗口, window.open
settings.setSupportZoom(true); // 是否支持页面缩放
settings.setBuiltInZoomControls(true); // 是否出现缩放工具
settings.setUseWideViewPort(true); // 容器超过页面大小时, 是否将页面放大到塞满容器宽度的尺寸
settings.setLoadWithOverviewMode(true); // 页面超过容器大小时, 是否将页面缩小到容器能够装下的尺寸
settings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.TEXT_AUTOSIZING); // 设置自适应屏幕的算法
settings.setAppCacheEnabled(false); // 是否启用app缓存
settings.setAppCachePath("/sdcard/aaa"); // app缓存文件路径
settings.setAllowFileAccess(true); // 是否允许访问文件
settings.setDatabaseEnabled(true); // 是否启用数据库
settings.setDomStorageEnabled(true); // 是否本地存储
/* -------------------------WebViewClient------------------------------------------------- */
let debounceDownVideoCover = debounce(downVideoCover);
var WebViewClient = android.webkit.WebViewClient;
var webViewClient = new JavaAdapter(WebViewClient, {
  onPageFinished: function (view, url) {
    console.log("onPageFinished");
    debounceDownVideoCover();
  },
});
webView.setWebViewClient(webViewClient);
/* -------------------------------------------------------------------------- */
function 网页中获取网页源代码() {
  return document.getElementsByTagName("html")[0].outerHTML;
}
/* -------------------------------------------------------------------------- */
function downVideoCover() {
  webView.evaluateJavascript(";" + 网页中获取网页源代码.toString() + ";网页中获取网页源代码();", function (s) {
    try {
      let imgUrl = s.match(/http[:/.\w]+?\.(jpg|png)/)[0];
      log("imgUrl = " + imgUrl);
      http.get(imgUrl, {}, function (res, err) {
        if (err) {
          toastLog(err);
          return;
        }
        let filePath = files.join(files.getSdcardPath(), "a封面.png");
        files.writeBytes(filePath, res.body.bytes());
        app.viewFile(filePath);
      });
    } catch (error) {
      toastLog(error);
    }
  });
}
function debounce(fn, delay) {
  let timer;
  delay = delay || 500;
  return function () {
    if (timer) {
      clearTimeout(timer);
    }
    const args = arguments;
    timer = setTimeout(() => {
      fn.apply(this, args); // 改变this指向为调用debounce所指的对象
    }, delay);
  };
}
/* -------------------------------------------------------------------------- */
let url = "https://www.bilibili.com/video/BV1Ja411q7SB?spm_id_from=333.999.0.0";
webView.loadUrl(url);


环境


手机: Mi 11 Pro


Android版本: 12


Autojs版本: 9.1.6

相关教程

https://www.yuque.com/yashujs/bfug6u/mev4w7


https://www.yuque.com/yashujs/bfug6u/xuqze5

https://www.yuque.com/yashujs/bfug6u/rohgii

https://www.yuque.com/yashujs/bfug6u/bvga5c

https://www.yuque.com/yashujs/bfug6u/sgcvgz

https://www.yuque.com/yashujs/bfug6u/seevgg

https://www.yuque.com/yashujs/bfug6u/azr88v


名人名言

思路是最重要的, 其他的百度, bing, stackoverflow, github, 安卓文档, autojs文档, 最后才是群里问问
--- 牙叔教程


声明

部分内容来自网络
本教程仅用于学习, 禁止用于其他用途

相关文章
下载网易云音乐(我喜欢的歌曲)
下载网易云音乐(我喜欢的歌曲)
|
前端开发
仿qq音乐官网部分静态页面
仿qq音乐官网部分静态页面
208 0
|
JavaScript 前端开发 开发者
写了一个油猴脚本:获取微信公众号文章封面
写了一个油猴脚本:获取微信公众号文章封面
|
前端开发
仿做QQ音乐官网——问题与解决办法
1.绝对路径:从根目录为起点到某一个目录的路径 直接指明文件在硬盘上真正存在具体位置或者是以Web站点根目录为参考的完整路径。 (绝对路径是规定死的目录,直观清晰,但被网页引用的文件不能随意挪动。当多个网页引用同一个文件时,所使用的路径都是相同的。 2.相对路径:在同一个网站下,不同文件之间的位置定位
95 0
仿做QQ音乐官网——问题与解决办法
|
Web App开发
怎么下载QQ空间或者知乎类似网站上面的视频文件
怎么下载QQ空间或者知乎类似网站上面的视频文件
146 0
怎么下载QQ空间或者知乎类似网站上面的视频文件
|
JavaScript Java Android开发
autojs下载大文件
牙叔教程 简单易懂
436 0
|
前端开发 Python
autojs之生成二维码
使用情景 生成二维码
416 0
autojs之生成二维码
|
Java 开发工具 Android开发
autojs之选择文件
使用场景 调用手机自带的文件管理 选择文件
510 0
|
搜索推荐 程序员 Go