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

 更新时间:2022年02月09日 11:28:04   作者:一只想飞的小蚂蚁  
我们经常会遇到以下情况吧:想点击好友空间看看他最近的动态,结果发现自己需要申请权限!别担心,本文将为大家介绍如何利用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#内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C#中的Hangfire和Quartz.NET 任务调度的区别解析

    C#中的Hangfire和Quartz.NET 任务调度的区别解析

    Hangfire 和 Quartz.NET 是两种常见的 C# 任务调度库,它们有不同的特点和使用场景,本文给大家介绍C#中的Hangfire和Quartz.NET 任务调度的区别,感兴趣的朋友一起看看吧
    2024-08-08
  • C#遍历List并删除某个元素的方法

    C#遍历List并删除某个元素的方法

    这篇文章主要介绍了C#遍历List并删除某个元素的方法,实例分析了正序与倒序遍历list及删除元素的使用技巧,需要的朋友可以参考下
    2015-02-02
  • Netcore Webapi返回数据的三种方式示例

    Netcore Webapi返回数据的三种方式示例

    这篇文章主要为大家介绍了Netcore Webapi返回数据的三种方式示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • Windows Form 分页 具体实现

    Windows Form 分页 具体实现

    其实功能实现很简单。我做的是一个通用的分页控件。项目时间很紧,可能有点粗糙。欢迎大家斧正。不说了直接贴代码吧
    2013-12-12
  • Unity2021发布WebGL与网页交互问题的解决

    Unity2021发布WebGL与网页交互问题的解决

    本文主要介绍了Unity2021发布WebGL与网页交互问题的解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05
  • 浅谈C# 序列化与反序列化几种格式的转换

    浅谈C# 序列化与反序列化几种格式的转换

    下面小编就为大家带来一篇浅谈C# 序列化与反序列化几种格式的转换。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-08-08
  • 在C#中实现接口事件的具体示例

    在C#中实现接口事件的具体示例

    在C#中,接口(interface)是一种定义类必须实现的方法和属性的抽象类型,除了方法和属性,接口还可以包含事件,实现接口事件可以帮助我们设计更加灵活和解耦的系统,本文将详细探讨如何在C#中实现接口事件,并通过具体示例说明其应用,需要的朋友可以参考下
    2024-08-08
  • C#获取进程或线程相关信息的方法

    C#获取进程或线程相关信息的方法

    这篇文章主要介绍了C#获取进程或线程相关信息的方法,涉及C#操作进程及线程的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-08-08
  • Unity实现UI光晕效果(发光效果)

    Unity实现UI光晕效果(发光效果)

    这篇文章主要为大家详细介绍了Unity实现UI光晕效果,发光效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-01-01
  • 深入讲解C#编程中嵌套类型和匿名类型的定义与使用

    深入讲解C#编程中嵌套类型和匿名类型的定义与使用

    这篇文章主要介绍了C#编程中嵌套类型和匿名类型的定义与使用,包括在SQL语句中使用匿名类型的方法,需要的朋友可以参考下
    2016-01-01

最新评论