首頁 > 軟體

利用C#快速查出哪些QQ好友空間遮蔽了自己

2022-02-09 13:00:24

大家好,我叫檸檬水,今天馬上就要放假,突然想到自己以前的夥伴、同學,好像想到他們空間沒怎麼發過動態,難道是把我遮蔽了嗎,好友又那麼多,行吧,只能用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#內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com