百度網盤搜索工具_2019

来源:https://www.cnblogs.com/zhangwc/archive/2019/09/03/11451983.html
-Advertisement-
Play Games

百度網盤搜索工具 1 寫在前面 經常搜索百度網盤裡的資源,以前做了個數據來源來自盤多多,現在不能使用了。所以就又找了一個搜索網站史萊姆http://www.slimego.cn。 2 分析 通過獲得查詢頁面的源數據,得到記錄總數,分頁數,搜索數據集合。 3.程式實現 下麵將貼出實現該程式的關鍵代碼。 ...


百度網盤搜索工具

1.寫在前面

經常搜索百度網盤裡的資源,以前做了個數據來源來自盤多多,現在不能使用了。所以就又找了一個搜索網站史萊姆http://www.slimego.cn。

2.分析

通過獲得查詢頁面的源數據,得到記錄總數,分頁數,搜索數據集合。

3.程式實現

下麵將貼出實現該程式的關鍵代碼。

 1         /// <summary>
 2         /// 獲得百度網盤文件
 3         /// </summary>
 4         private void GetNetFilesDo()
 5         {
 6             string Keyword = TextBoxKeyword.Text.Trim();
 7             string url = string.Format("http://www.slimego.cn/search.html?q={0}&page=1&rows=20", Keyword);//http://m.panduoduo.net/s/name/{0}
 8             string html = GetHtmlContent(url);
 9 
10             //獲得總頁數和總記錄數
11             GetPageInfo(html);
12             Invoke(new SetProgressMaxDelegate(SetProgressMax), RecordCount);
13             if (RecordCount <= 0)
14             {
15                 Invoke(new SetButtonStartDelegate(SetButtonStart), true);
16                 return;
17             }
18 
19             //迴圈頁面
20             for (int i = 1; i <= PageCount; i++)
21             {
22                 if (i >= 2)//第1頁已經查到了,就不用查了
23                 {
24                     url = string.Format("http://www.slimego.cn/search.html?q={0}&page={1}&rows=20", Keyword, i);
25                     html = GetHtmlContent(url);
26                 }
27 
28                 int seeks = html.IndexOf("<div style=\"display:table\">");//開始位置
29                 int seeke = html.IndexOf("<div id=\"pagesplit\" class=\"m-pagination\"></div>");//結束位置
30                 string content = html.Substring(seeks + 0, seeke - seeks - 15).Trim();
31                 Regex rxGetInfo = new Regex("<div style=\"display: table-cell\" class=\"searchCell\">.*?</div>", RegexOptions.Singleline);
32                 MatchCollection matches = rxGetInfo.Matches(content);
33 
34                 //迴圈每1頁
35                 for (int j = 0; j < matches.Count; j++)
36                 {
37                     if (matches[j].Success)
38                     {
39                         string strMatch = matches[j].Value;
40 
41                         MatchCollection match1 = Regex.Matches(strMatch, "<a rel=\"noreferrer\".*?</a>", RegexOptions.Singleline);//文件名
42                         MatchCollection match2 = Regex.Matches(strMatch, "<span class=\"ftype\">.*?</span>");//類別
43                         MatchCollection match3 = Regex.Matches(strMatch, "<span class=\"size\">.*?</span>");//大小
44                         MatchCollection match4 = Regex.Matches(strMatch, "<span class=\"upload\">.*?</span>");//時間
45                         MatchCollection match5 = Regex.Matches(strMatch, "<a rel=\"noreferrer\".*?</a>", RegexOptions.Singleline);//文件地址
46                         MatchCollection match6 = Regex.Matches(strMatch, "<span class=\"home\">.*?</span>", RegexOptions.Singleline);//分享地址
47                         if (match1 == null || match2 == null || match3 == null || match4 == null || match5 == null || match6 == null) continue;
48 
49 
50                         NetFileInfo file = new NetFileInfo();
51                         file.ID = (i - 1) * PageSize + j + 1;
52                         file.FileFullName = CommonLib.RemoveHTML(match1[0].Value).Trim();
53                         file.FileName = file.FileFullName;//GetFileName(file.FileFullName)
54                         file.ExtName = GetExtName(file.FileFullName);
55                         file.Tag = GetTypeName(file.ExtName);
56                         file.FileSize = CommonLib.RemoveHTML(match3[0].Value);
57                         string TimeSize = CommonLib.RemoveHTML(match4[0].Value);//上傳: 2018年07月20日 07時27分
58                         TimeSize = TimeSize.Substring(TimeSize.IndexOf(" ") + 1, TimeSize.LastIndexOf(" ") - 4);
59                         file.FileTime = TimeSize;
60                         file.ShareFileSite = GetShareFileSite(match1[0].Value);
61                         string ShareName = CommonLib.RemoveHTML(match6[0].Value).Replace("查看用戶", "").Replace("的所有分享", "");
62                         file.ShareName = ShareName;
63                         file.ShareSite = GetShareSite(match6[0].Value);
64                         //file.DiskSite = ReplaceDiskSite(site.Split('|')[0]);
65                         //file.ShareSite = site.Split('|')[1];
66 
67                         Invoke(new GridRowAddDelegate(GridRowAdd), file);
68                         Invoke(new SetProgressDelegate(SetProgress), file.ID);
69                     }
70                 }
71             }
72 
73             Invoke(new SetButtonStartDelegate(SetButtonStart), true);
74         }
View Code

4.程式界面

5.功能

1、搜索任意名稱的百度網盤共用文件
2、可以左鍵雙擊打開網盤地址或右鍵點擊彈出上下文菜單來打開、複製網盤地址及打開、複製分享者主頁;
3、可以導出搜索結果。

下載地址:https://pan.baidu.com/s/12_c8RfkL56Znw8BL9EdUeA


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • UseDeveloperExceptionPage 中間件 我們談談在 Startup 類的 Configure()方法中以下代碼: 如果我們使用上面的代碼運行我們的應用程式,我們看不到異常,而是看到“來自 Default.html 頁面中的 Hello”。如果您瞭解 asp.net Core 請求 ...
  • Asp.Net Core 中的靜態文件 在這節中我們將討論如何使 ASP.NET Core 應用程式,支持靜態文件,如 HTML,圖像,CSS 和 JavaScript 文件。 靜態文件 預設情況下,Asp.Net Core 應用程式不會提供靜態文件。 靜態文件的預設目錄是wwwroot,此目錄必須 ...
  • 1.SpeechSynthesizer文字轉音頻 項目添加引用:System.Speech using(SpeechSynthesizer speech = new SpeechSynthesizer) { speech.Rate = 0; //語速 speech.Volume = 100; //音 ...
  • 現在的手游基本都是重覆操作,一個動作要等好久,結束之後繼續另一個動作.很麻煩,所以動起了自己寫一個游戲輔助的心思. 這個輔助本身沒什麼難度,就是通過不斷的截圖,然後從這個截圖中找出預先截好的能代表相應動作的按鈕或者觸發條件的小圖. 找到之後獲取該子區域的左上角坐標,然後通過windows API調用 ...
  • 1.form1的button事件下: form2 form = new form2(); form.Show(); Thread.Sleep(10000); //form2窗體顯示10秒 form.Close(); //form2窗體關閉 2.form1的button事件下: form2 form ...
  • C#從伺服器下載文件可以使用下麵4個方法:TransmitFile、WriteFile、WriteFile和流方式下載文件,並保存為相應類型,方法如下: 1、TransmitFile實現下載 protected void Button1_Click(object sender, EventArgs ... ...
  • 動態代理配合rpc技術調用遠程服務,不用關註細節的實現,讓程式就像在本地調用以用。 因此動態代理在微服務系統中是不可或缺的一個技術。網上看到大部分案例都是通過反射自己實現,且相當複雜。編寫和調試相當不易,我這裡提供里一種簡便的方式來實現動態代理。 1、創建我們的空白.netcore項目 通過vs20 ...
  • 場景 Winform中實現ZedGraph的多條Y軸(附源碼下載): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100132245 在上面實現顯示多條自定義Y軸的效果上,改進實現自定義新增Y軸功能。 關註公眾號霸道的程式猿獲取 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...