1. 程式人生 > >java獲取百度網盤真實下載連結

java獲取百度網盤真實下載連結

1. [程式碼]獲取方法

import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.json.JSONArray;
import org.json.JSONObject;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
public class BaiduNetDisk {
    public static List<Map<String, Object>> getUrl(String url) throws Exception {
        List<String> fs_id = new ArrayList<String>();
        List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
        Document doc = Jsoup.connect(url).get();
        String html = doc.toString();
        int a = html.indexOf("{\"typicalPath");
        int b = html.indexOf("yunData.getCon");
        int sign_head = html.indexOf("yunData.SIGN = \"");
        int sign_foot = html.indexOf("yunData.TIMESTAMP");
        int time_head = html.indexOf("yunData.TIMESTAMP = \"");
        int time_foot = html.indexOf("yunData.SHARE_UK");
        int share_id_head = html.indexOf("yunData.SHARE_ID = \"");
        int share_id_foot = html.indexOf("yunData.SIGN ");
        String sign = html.substring(sign_head, sign_foot);
        sign = sign.substring(sign.indexOf("\"") + 1, sign.indexOf("\";"));
        String time = html.substring(time_head, time_foot);
        time = time.substring(time.indexOf("\"") + 1, time.indexOf("\";"));
        String share_id = html.substring(share_id_head, share_id_foot);
        share_id = share_id.substring(share_id.indexOf("\"") + 1,
                share_id.indexOf("\";"));
        System.out.println(share_id);
        html = html.substring(a, b);
        a = html.indexOf("{\"typicalPath");
        b = html.indexOf("};");
        JSONObject jsonObject = new JSONObject(html.substring(a, b + 1));
        String uk = jsonObject.getString("uk");
        String shareid = jsonObject.getString("shareid");
        String path = URLEncoder.encode(jsonObject.getString("typicalPath"),
                "utf-8");
        jsonObject = new JSONObject(jsonObject.getString("file_list"));
        JSONArray jsonArray = new JSONArray(jsonObject.getString("list"));
        jsonObject = jsonArray.getJSONObject(0);
        String app_id = jsonObject.getString("app_id");
        if (jsonObject.getString("isdir").equals("1")) {
            String url1 = "http://pan.baidu.com/share/list?uk="
                    + uk
                    + "&shareid="
                    + shareid
                    + "&page=1&num=100&dir="
                    + path
                    + "&order=time&desc=1&_="
                    + time
                    + "&bdstoken=c51077ce0e0e313a16066612a13fbcd4&channel=chunlei&clienttype=0&web=1&app_id="
                    + app_id;
            String fileListJson = HttpRequest.getData(url1);
            System.out.println(fileListJson);
            jsonObject =new JSONObject(fileListJson);
            jsonArray = new JSONArray(jsonObject.getString("list"));
        }
        final int size = jsonArray.length();
        for (int i = 0; i < size; i++) {
            Map<String, Object> map = new HashMap<String, Object>();
            jsonObject = jsonArray.getJSONObject(i);
            String fileName = jsonObject.getString("server_filename");
            //儲存檔名
            map.put("fileName", fileName);
            fs_id.add(jsonObject.getString("fs_id"));
            String fileInfo = HttpRequest
                    .getData("http://pan.baidu.com/api/sharedownload?sign="
                            + sign
                            + "×tamp="
                            + time
                            + "&bdstoken=c51077ce0e0e313a16066612a13fbcd4&channel=chunlei&clienttype=0&web=1&app_id=250528&encrypt=0&product=share&uk="
                            + uk + "&primaryid=" + share_id + "&fid_list=%5B"
                            + fs_id.get(i) + "%5D");
            JSONObject json_data = new JSONObject(fileInfo);
            if (json_data.getString("errno").equals("0")) {
                JSONArray jsonArray2 = new JSONArray(json_data.getString("list"));
                json_data = jsonArray2.getJSONObject(0);
                //儲存檔案下載實鏈
                map.put("url", json_data.getString("dlink"));
            } else if (json_data.getString("errno").equals("-20")) {
                return null;
                // String getVerCode();
            } else {
                return null;
            }
            list.add(map);
        }
        return list;
    }
}

2. [程式碼]HttpRequest.java 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.RandomAccessFile;
import java.lang.reflect.Method;
import java.net.HttpURLConnection;
import java.net.URL;
public class HttpRequest {
    public static String getData(String u) throws Exception {
        String re="";
                URL url = new URL(u);
        HttpURLConnection httpURLConnection = (HttpURLConnection) url
                .openConnection();
        httpURLConnection.setRequestMethod("GET");
        httpURLConnection.setDoInput(true);
        httpURLConnection.setDoOutput(true);
        InputStream is = httpURLConnection.getInputStream();
        InputStreamReader isr = new InputStreamReader(is);
        BufferedReader bufferedReader = new BufferedReader(isr);
        String iL = "";
        while ((iL = bufferedReader.readLine()) != null) {
            re += iL + "\n";
        }
          
        return re;
    }
}



相關推薦

java獲取真實下載連結

1. [程式碼]獲取方法 import java.net.URLEncoder; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.M

教大家獲取真實下載連結(告別雲客戶端,全速下載

先把百度雲盤資源分享到自己的雲盤中,然後建立公開連結。2.瀏覽器開啟該網頁,以360瀏覽器為例,按F12進入開發者模式,找到Console(控制檯),複製以下程式碼到控制檯,然後回車!$.ajax({type: "POST",url: "/api/sharedownload?

JAVA獲取下載真實地址

這是一個java寫的獲取百度網盤真實下載連結進行下載的程式。  程式裡面一些引數拼接是根據瀏覽器抓包來的。具體的抓包方法網上一大堆,可以參考。這裡給出了原始碼和匯出的jar包。  url網址使用於百度分享的地址。暫時沒有適配有提取碼的地址。 執行的方法:  1、在當前的目錄

獲取真是下載地址

time ole 不想 https _id 地址 360瀏覽器 data upload 1、將要下載的文件分享出去,是公開分享,私密不行 2、打開分享後的頁面,按下f12進入調試模式,在控制臺輸入一下代碼,點擊回車,既可看到真實下載地址 var ur

獲取下載真實地址

這是一個java寫的獲取百度網盤真實下載連結進行下載的程式。 程式裡面一些引數拼接是根據瀏覽器抓包來的。具體的抓包方法網上一大堆,可以參考。這裡給出了原始碼和匯出的jar包。 url網址使用於百度分享的地址。暫時沒有適配有提取碼的地址。 執行的方法: 1

java功能

java 版百度網盤功能,目前已經實現: 1:百度網盤登入 2:列出百度網盤檔案 3: 切換目錄  4: 多執行緒下載檔案 速度有待優化。思路已經成型。 原始碼地址:https://gitee.com/xiaoyaofeiyang/BaiduPcs #

直接下載助手-不需要登入和安裝客戶端

360瀏覽器:外掛中心搜尋安裝Tamper monkey外掛 谷歌瀏覽器 :https://chrome.google.com/webstore/search/tampermonkey 進入安裝 倆眼睛那個 安裝完成後,點以下地址,安裝指令碼 https://greasyfork.org/zh-CN/s

Vue2.5開發去哪兒App 從零基礎入門到實戰專案免費下載

Vue2.5開發去哪兒網App 從零基礎入門到實戰專案百度網盤免費下載 2018最新Vue2.5零基礎入門到專案實戰開發旅遊網站App課程視訊教程下載。本課程從理論到專案,涵蓋Vue各個層面的基礎知識和開發技巧。從Vue基礎語法入手,逐層遞進,實戰專案貼近企業流程,完全按照企業級別程式碼質量和工程開發流程進

又一款好用的免費下載不限速

之前我再某寶購買了一個百度網盤下載檔案不限速神器!一直用到現在,感覺非常好用! 免費推薦給大家使用!本人親測,無毒。下載不限速,下載大檔案必備。 https://download.csdn.net/download/aaa8086/10783779 無需安裝,電腦版,不支援移動版。個人覺

面對不穩定的離線下載,這些備用方案可以幫你應急

由於伺服器正在優化升級,百度網盤日前宣佈磁力連結和 BT 種子下載功能暫停使用。前幾天恢復後,不少資源都出現了進度條始終為零的問題。如果你對離線下載比較依賴的話,不妨試試以下幾種替代服務。 太長不看版   概覽   Offcloud Offcloud

for mac 破解 分享一個MAC下繞開限速下載的方法,三步操作永久生效~~~

相信大家都比較困惑,百度網盤客戶端限速後一般只有幾十K的下載速度,Windows有百度網盤破解版,但MAC的破解版似乎不存在,要提速的話,一般的做法是開超級會員(27元/月),身為程式設計師的我們,是不是有更黑科技一點的方法呢?答案是肯定的,接下來我介紹一種正在使用的方法。(

資源下載加速教學

百度網盤資源在迅雷下載、瀏覽器下載中的加速教學 我們在下載百度網盤資源的時候,速度正常是很慢的,正常下載如下圖(注意看下載地址),速度非常非常非常慢 那怎麼做才能更快呢 首先,Ctrl + C 網址; 其次,在新的位址列Ctrl + V,點H

真實地址

使用wget下載 先在控制檯把cookie提取出來, 檢視wget的文件,發現它使用cookie的方法跟curl有點不一樣,得將cookie放到一個檔案裡,而不能像curl那樣從標準輸入傳入。 ➜

《一個APP的誕生——從零開始設計你的手機應用》讀後感,電子書PDF下載

一開始看到書名,還以為是講APP程式開發的,所以拿來看看,沒想到這本書是著重“設計”。全書內容以設計為主,UI介面設計、EI體驗設計、互動/視覺/服務等,雖然提到了開發實現,但是基本上跟APP開發也沒啥關係。從一個做過產品的人的角度上講,這本書的內容可以參考,但是又感覺這本書

Pandownload關了,還有更牛逼的全速下載方法

Pandownload軟體關停公告大家好,我是PanDownload的作者。很遺憾的告訴大家,由於個別黑心商家將本免費軟體有償售賣,現決定即日起暫停軟體使用。本軟體自去年2月9號首次釋出以來,一直堅持免費使用,我也花費了很多時間和精力進行維護更新。可是,原本免費分享給大家的軟體,卻被一些無良商家擅自拿到交易平

【2016年12月2日】 IDM下載外掛完美圖文教程 完美解決開發者警告問題

總所周知,目前百度網盤外掛已在Chrome商店上下架。目前只能通過載入開發者外掛來進行使用。但是每次啟動Chrome都會提示你去禁用未經許可的外掛。這樣真的很煩。。。很煩。。。為了更好的下載!下載!!下載!!!我終於在外掛開發者的Git上找到了解決方案。我先把最

畢小朋《精通Android studio》讀後感,以及電子書PDF下載

自從看了《Android Studio實戰 快速高效地構建Android應用》之後,我就越發相信要用一個工具,就得先熟悉這個工具。就像一個兵器,只有這個兵器用的得心應手了,才能更好的發揮它的作用。工欲善其事必先利其器,所以我把這本《精通Android studio》拿來看看。

突破下載限速 Aria2

macOS: mac上配置比較簡單 重新整理百度雲盤,發現多了個匯出下載,就是它了,選擇需要下載的檔案,點它就行 Windows: 也可以去下載最新版(不過需要自己配置) 步驟: 1.從上面的連結百度網盤下載檔案,Aria2 for Window

分享一個MAC下避開限速下載的方法,三步操作永久生效

感謝博主Oliver556的分享。 相信大家都比較困惑,百度網盤客戶端限速後一般只有幾十K的下載速度,Windows有百度網盤破解版,但MAC的破解版似乎不存在,要提速的話,一般的做法是開超級會員(27元/月),身為程式設計師的我們,是不是有更黑科技一點的方法呢?答案是

破解 -- 使下載速度增加20倍

需要條件 Windows 10 作業系統 Firefox瀏覽器(當然Chrome也行, 不過本人是火狐忠實支持者, Chrome用得不習慣, 操作大同小異!) 願意折騰的你 必備工具 Aria2下載器, 對應OS版本 A