模擬登入微博通,抓取新浪微博c

2021-06-10 07:29:12 字數 2369 閱讀 4809

廢話少說,下面的東西就在倆個小時內完成了。

一、首先我們要提到模擬登入微博通,我用fiddler檢視了下,發現登入走下面三個流程:

下面來上**,完成上面的描述,很簡單,如下:

(1 )我們先定義乙個全域性變數:

private static cookiecontainer cc = new cookiecontainer();
(2 )模擬第乙個post請求:

/// /// 模擬post請求

///

/// 返回的cookie

/// 使用者暱稱/郵箱

/// 使用者登入密碼

///

public void simulatepost(string nick,string password, out string url,out string cookie)

&password=&cookietime=2592000";

postdata = string.format(postdata, nick, password); //拼裝資料

string loginurl = ""; //登入位址

#region 資訊頭

#region 提交資料並返回cookie

cookie = req.cookiecontainer.getcookieheader(req.requesturi); //字串形式的cookie跟你在瀏覽器看到的一樣

streamreader stre = new streamreader(rep.getresponsestream(), encoding.getencoding("utf-8"));

#endregion

string html = stre.readtoend();

url = html.substring(html.indexof("src=\"") + 5, (html.indexof("\"", html.indexof("src=\"") + 5) - html.indexof("src=\"") - 5));

rep.close();

stream.close();

}catch

if (stream != null)

url = null;

cookie = null;}}

(3) 模擬第二個請求:

/// /// 模擬get請求

///

/// 請求位址

/// cookie物件

/// cookie字串

/// host,可選

/// 新的cookie字串

///

public string simulateget(string url, cookiecontainer cookie,string cookiestr, string host,out string newcookie)

catch

if (st != null)

newcookie = null;

}return json;

}

這裡講一下,當我們第二個請求完成後,我前面講過cookie已經完全角成了,這個時候你拿著這個cookie就可以訪問任何乙個頁面了,所以聰明的你會發現,第二個方法是通用的,你可以接著用他請求其他的位址,只要傳入正確的請求位址和cookie字串即可。

下面貼上最後一段**,是我測試用的,如下:

結束:搞定。這個只是乙個簡單的寫法,各位朋友看著改即可。

模擬新浪微博

1.專案效果圖 主要 如下 android layout width match parent android layout height match parent android padding 10dip android orientation vertical 2 獲取xml資源 在andro...

騰訊空間 新浪微博 騰訊微博登入介面

1 引用js檔案 2 html 3 js指令碼 document ready function 第三方平台登入 var tpalogin 儲存登入使用者資訊 param 引數重置 paramreset function qq空間 qzone function function reqdata,opt...

新浪微博passport登入原理

1.首先請求位址 不同js版本位址可能不同 傳送的引數主要包括加密的原始引數 加密後的使用者名稱 密碼以及一些入口資訊等,使用者名稱 密碼的加密方法可以通過檢視js看到 client指定的是客戶端使用的哪個js進行引數處理 1.請求以後 2.如果登入成功以後,獲取跨域的url 3.執行跨域url f...