利用C#快速查出哪些QQ好友空間屏蔽了自己
大家好,我叫檸檬水,今天馬上就要放假,突然想到自己以前的伙伴、同學(xué),好像想到他們空間沒怎么發(fā)過動(dòng)態(tài),難道是把我屏蔽了嗎,好友又那么多,行吧,只能用c#寫一個(gè)快速的知道哪些人屏蔽了自己。
首先我們整理邏輯,我們需要所有好友的QQ號(hào),然后是一個(gè)通過qq號(hào)知道這個(gè)人是否空間屏蔽了自己的接口
qq號(hào)我倒是想到了騰訊官方提供的qq群里的某一個(gè)接口,后面的嘛,可以通過訪問qq空間的那個(gè)接口嘛,嘿嘿,我真是太機(jī)智了 竟然我們邏輯都已經(jīng)想好了,那么后面的事情就簡(jiǎn)單多了

首先我們進(jìn)入qq群

進(jìn)去后我們可以看到不僅是所有的QQ群有,連當(dāng)前qq的所有好友也有 我們點(diǎn)擊好友那個(gè)接口,打開所有的好友,直接復(fù)制就行了,其它的交給正則表達(dá)式吧!
然后我們登錄QQ號(hào),打開這個(gè)鏈接 http://user.qzone.qq.com/自己QQ號(hào)/infocenter 打開f12,刷新找到第一個(gè)接口,找到發(fā)送請(qǐng)求的cookie,現(xiàn)在c#獲取cookie我還不會(huì)哦,寫爬蟲還是python好呢
現(xiàn)在我們有三個(gè)準(zhǔn)備了,登錄狀態(tài)下的QQ號(hào),cookie已經(jīng)所以的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好友,直接將復(fù)制的寫進(jìn)去
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號(hào)數(shù)目不匹配!");
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 = "#";//將復(fù)制的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("成功啦,去程序目錄一個(gè)個(gè)看吧!");
}
}
}
里面有說放qq號(hào)和cookie的注釋,然后運(yùn)行


如果里面有這句話的,唉

總體來說,其實(shí)可以直接得出結(jié)果的,但是,每一個(gè)好友難道不值得你一個(gè)一個(gè)看嘛,如果想用直接得出結(jié)果,可以聯(lián)系我哦,其實(shí)后面加個(gè)判斷就行了!
人生若只如初見,何事秋風(fēng)悲畫扇!
到此這篇關(guān)于利用C#快速查出哪些QQ好友空間屏蔽了自己的文章就介紹到這了,更多相關(guān)C#內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C#使用ScrapySharp實(shí)現(xiàn)多線程下載操作
在現(xiàn)代互聯(lián)網(wǎng)應(yīng)用中,數(shù)據(jù)抓取是一個(gè)常見的需求,無論是為了數(shù)據(jù)分析、內(nèi)容聚合還是自動(dòng)化測(cè)試,ScrapySharp 是一個(gè)基于 .NET 的輕量級(jí)、高性能的網(wǎng)頁抓取庫,本文將探討如何在 C# 中使用 ScrapySharp 實(shí)現(xiàn)多線程下載策略,需要的朋友可以參考下2024-08-08
C#實(shí)現(xiàn)的優(yōu)酷真實(shí)視頻地址解析功能(2014新算法)
這篇文章主要介紹了C#實(shí)現(xiàn)的優(yōu)酷真實(shí)視頻地址解析功能(2014新算法),本文在當(dāng)前環(huán)境下是有效的,因?yàn)閮?yōu)酷之前更新了算法,需要的朋友可以參考下2014-10-10
c# 托盤雙擊不觸發(fā)單擊事件的實(shí)現(xiàn)方法
在開發(fā)winform的時(shí)候我發(fā)現(xiàn),當(dāng)執(zhí)行雙擊操作(notifyIcon1_MouseDoubleClick)時(shí),會(huì)同時(shí)伴隨著單擊事件(notifyIcon1_MouseClick)的發(fā)生。。那如何才能使雙擊事件不觸發(fā)單擊事件呢?2009-02-02
C#實(shí)現(xiàn)JsonString與Object互轉(zhuǎn)
這篇文章主要為大家介紹了如何使用.NET庫System.Web.Extensions.dll和Newtonsoft.Json.dll實(shí)現(xiàn)Json字符串之間的轉(zhuǎn)換,感興趣的小伙伴可以參考下2024-12-12
C# 獲取某個(gè)時(shí)間的0點(diǎn)0分和23點(diǎn)59分59秒
這篇文章主要介紹了C# 獲取某個(gè)時(shí)間的0點(diǎn)0分和23點(diǎn)59分59秒,文中給大家提到了java 獲取某一日期的0點(diǎn)0分0秒和23點(diǎn)59分59秒,需要的朋友可以參考下2019-09-09
C# 全角和半角轉(zhuǎn)換以及判斷的簡(jiǎn)單代碼
這篇文章介紹了在C#中判斷和轉(zhuǎn)換全角半角的方法,有需要的朋友可以參考一下2013-07-07
C#實(shí)現(xiàn)websocket雙向通信的示例代碼
本文基于WebSocketSharp實(shí)現(xiàn)了websocket雙向通信,除基本的客戶端向服務(wù)端發(fā)送消息外,也支持客戶端向指定的客戶端發(fā)送消息、群發(fā)消息,其他協(xié)議可自定義,廢話不多說,直接上干貨,需要的朋友可以參考下2024-06-06

