利用C#快速查出哪些QQ好友空間屏蔽瞭自己
大傢好,我叫檸檬水,今天馬上就要放假,突然想到自己以前的夥伴、同學,好像想到他們空間沒怎麼發過動態,難道是把我屏蔽瞭嗎,好友又那麼多,行吧,隻能用c#寫一個快速的知道哪些人屏蔽瞭自己。
首先我們整理邏輯,我們需要所有好友的QQ號,然後是一個通過qq號知道這個人是否空間屏蔽瞭自己的接口
qq號我倒是想到瞭騰訊官方提供的qq群裡的某一個接口,後面的嘛,可以通過訪問qq空間的那個接口嘛,嘿嘿,我真是太機智瞭 竟然我們邏輯都已經想好瞭,那麼後面的事情就簡單多瞭
首先我們進入qq群
進去後我們可以看到不僅是所有的QQ群有,連當前qq的所有好友也有 我們點擊好友那個接口,打開所有的好友,直接復制就行瞭,其它的交給正則表達式吧!
然後我們登錄QQ號,打開這個鏈接 http://user.qzone.qq.com/自己QQ號/infocenter 打開f12,刷新找到第一個接口,找到發送請求的cookie,現在c#獲取cookie我還不會哦,寫爬蟲還是python好呢
現在我們有三個準備瞭,登錄狀態下的QQ號,cookie已經所以的qq好友 接下來看我的完整代碼
using System; using System.Collections.Generic; using System.IO; using System.Net; using System.Net.Http; using System.Text; using System.Text.RegularExpressions; namespace ConsoleApp6 { class Program { static void Main(string[] args) { string url = "http://user.qzone.qq.com/<<QQ>>/infocenter"; string txt = ""; StreamReader sr = new StreamReader(@"qq.txt");//裡面裝的是所以qq好友,直接將復制的寫進去 while (!sr.EndOfStream) { string str = sr.ReadLine(); txt += str + "\n"; } sr.Close(); string regex1 = "name: \"(?<name>.*?)\",";//獲取QQ昵稱 string regex2 = "uin: (?<qq>.*?)}";//獲取QQ昵稱 MatchCollection namelist = Regex.Matches(txt, regex1); MatchCollection qqlist = Regex.Matches(txt, regex2); if (namelist.Count != qqlist.Count) { Console.WriteLine("qq昵稱與QQ號數目不匹配!"); return; } Dictionary<string, string> dic = new Dictionary<string, string>(); for (int i = 0; i < namelist.Count; i++) { string qqname = Regex.Match(namelist[i].Value, regex1).Groups["name"].ToString().Trim(); string qqnumber = Regex.Match(qqlist[i].Value, regex2).Groups["qq"].ToString().Trim(); dic.Add(qqname, qqnumber); } string cookie = "#";//將復制的cookie放在裡面哦 foreach (var item in dic) { url = url.Replace("<<QQ>>", item.Value); HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url); req.Method = "GET"; req.Accept = "text/html"; req.AllowAutoRedirect = true; req.Headers.Add("Encoding", Encoding.UTF8.ToString()); req.Headers.Add("cookie", cookie); req.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36"; HttpWebResponse res = (HttpWebResponse)req.GetResponse(); using (StreamReader reader = new StreamReader(res.GetResponseStream())) { string html = reader.ReadToEnd(); if (!string.IsNullOrEmpty(html)) { string filePath = System.IO.Directory.GetCurrentDirectory() + "\\" + item.Key + item.Value + ".txt"; using (StreamWriter sw = new StreamWriter(filePath)) { sw.Write(html); } Console.WriteLine(item.Key + item.Value +"Download OK!\n"); } } url = url.Replace(item.Value,"<<QQ>>"); } Console.WriteLine("成功啦,去程序目錄一個個看吧!"); } } }
裡面有說放qq號和cookie的註釋,然後運行
如果裡面有這句話的,唉
總體來說,其實可以直接得出結果的,但是,每一個好友難道不值得你一個一個看嘛,如果想用直接得出結果,可以聯系我哦,其實後面加個判斷就行瞭!
人生若隻如初見,何事秋風悲畫扇!
到此這篇關於利用C#快速查出哪些QQ好友空間屏蔽瞭自己的文章就介紹到這瞭,更多相關C#內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- C#發送Get、Post請求(帶參數)
- C#中的WebRequest與WebResponse抽象類、DNS靜態類、Ping類介紹
- C#通過GET/POST方式發送Http請求
- C#中的HttpWebRequest類用法詳解
- C#正則表達式(Regex類)用法實例總結