浏览器脚本开发 API

 

123浏览器私有 API 只有在123浏览器的 https://123.browser/ 页面 JavaScript 运行环境里才有权限调用。

chrome.yesPrivate.downloadString


dictionary Header {
    String name;
    String value;
};
callback DownloadStringCallback = void(boolean is_ok, long net_error, String result);
void downloadString(String url, Header[] headers,DownloadStringCallback callback);
                

这个接口发起网络请求,并自动带上相应的 cookies 信息,并把结果传回 DownloadStringCallback

  • url,指定要请求的 url
  • headers,设置请求的 headers 信息。

DownloadStringCallback 的参数信息:

  • is_ok,这个网络请求是否成功。
  • net_error,网络错误码。值为 0 表示网络成功。
  • result,网络请求返回的数据。

示例:


var onGetRequest =  function(is_ok, net_error, result) {
    console.log(is_ok);
    if(is_ok) {
        console.log(result);
    } else {
        console.log(net_error);
    }
};

var url = 'https://www.baidu.com/';
headers = [{'name':'Referer','value': 'https://www.taobao.com/'}];
chrome.yesPrivate.downloadString(url, headers, onGetRequest);
                

这个网络请求的 request 信息就是:


GET https://www.baidu.com/ HTTP/1.1
Host: www.baidu.com
Connection: keep-alive
Sec-Fetch-Site: none
Sec-Fetch-Mode: no-cors
Sec-Fetch-Dest: empty
Referer: https://www.taobao.com/
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.114 Safari/537.36
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Cookie: BAIDUID_BFESS=3A2FE32AD39BATY5038F3A9B1D394BC1:FG=1; ZFY=yWRNoUJg72itET:A6dkeQEFqLe:A7vqkJHUuFgm8EG:BKo:C
                

chrome.yesPrivate.downloadFile


dictionary Header {
    String name;
    String value;
};

callback DownloadFileCallback = void(boolean is_ok, long net_error, long content_size, String file_path);
void downloadFile(String url, Header[] headers, DownloadFileCallback callback);
                

这个接口与 chrome.yesPrivate.downloadString,它是发起网络请求,并把返回数据保存到一个文件中。

DownloadFileCallback 的参数信息:

  • is_ok,这个网络请求是否成功。
  • net_error,网络错误码。值为 0 表示网络成功。
  • content_size,网络请求返回的数据大小。
  • file_path,数据保存在本地磁盘的位置。

示例:


var onGetRequest =  function(is_ok, net_error, content_size, file_path) {
    console.log(is_ok);
    if(is_ok) {
        console.log(file_path);
    } else {
        console.log(net_error);
    }
};

var url = 'https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png';
headers = [{'name':'Referer','value': 'https://www.taobao.com/'}];
chrome.yesPrivate.downloadFile(url, headers, onGetRequest);
                

运行输出结果:


true
C:\Users\john\Downloads\4cce6278-856c-4fa5-9370-1a940654ae92
                

chrome.yesPrivate.createDownloadAudioVideo


dictionary Header {
    String name;
    String value;
};

static void createDownloadAudioVideo(String title, String url,  String audio_url, String video_url, Header[] headers);
                

这个接口是创建一个浏览器下载项,它有单独音频和视频的下载url,并单独的音频和视频下载好之后,内部自动调用 ffmpeg,把它们合并成一个视频文件。

参数的信息如下:

  • title,浏览器下载项的标题
  • url,浏览器下载项的url,是虚拟的,仅用作显示用
  • audio_url,真实的音频下载 url
  • video_url,真实的视频下载 url
  • headers,自定义网络请求 headers 信息

chrome.yesPrivate.createDownloadFile


dictionary Header {
    String name;
    String value;
};

void createDownloadFile(String url, String file_name, long file_size, Header[] headers);
                

这个接口是创建一个浏览器下载项,它可以指定下载的 url 和保存成文件的文件名。

参数的信息如下:

  • url,下载的 url
  • title,保存的文件名
  • file_size,文件的大小,未知大小可设置成 0
  • headers,自定义网络请求 headers 信息