想想就好:这些年,博客园没有变,变的只是我们

今天想着对关注自己的粉丝群发条消息,想到博客园没提供这功能,那就自己来吧:

于是自己写了段代码,采集昵称,并模拟发送:

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading;

namespace Cnblogs_SendMsg
{
    class Program
    {

        static void Main(string[] args)
        {
            // GatherNickNames();
            SendMsg();
        }

        #region 向粉丝发送消息
        static void SendMsg()
        {
            string[] nicks = File.ReadAllLines(path, Encoding.Default);
            Random rnd = new Random();
            for (int i = 0; i < nicks.Length; i++)
            {
                Send(nicks[i], nicks[i] + ",感谢关注我的博客!", @"感谢您关注我的博客,同时也欢迎关注我的微信公众号
![](https://images2018.cnblogs.com/blog/17408/201805/17408-20180523041027505-1002652922.jpg)", i);
                Thread.Sleep(60*1000 + rnd.Next(1500, 2000));
            }

        }
        private static void Send(string nickName, string title, string text, int index)
        {
            try
            {
                string json = "{content:\"" + text + "\",name:\"" + nickName + "\",title:\"" + title + "\"}";
                byte[] data = Encoding.UTF8.GetBytes(json);
                //WebClient wc = new WebClient();
                //wc.Headers.Add("user-agent", "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36");
                //wc.Headers.Add("cookie", cookie);
                //wc.Headers.Add("content-type", "application/json; charset=UTF-8");
                //wc.Headers.Add("referer", "https://msg.cnblogs.com/send?recipient=" + System.Web.HttpUtility.UrlEncode(nickName, Encoding.UTF8));
                //wc.Encoding = Encoding.UTF8;

                //byte[] html = wc.UploadData("https://msg.cnblogs.com/api/message", data);

                //string cookieStr = "51fd9f14fa7561b5";
                //string postData = string.Format("userid={0}&password={1}", "guest", "123456");
                //byte[] data = Encoding.UTF8.GetBytes(postData);

                // Prepare web request...
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://msg.cnblogs.com/api/message");

                request.Method = "POST";
                request.Referer = "https://msg.cnblogs.com/send?recipient=" + System.Web.HttpUtility.UrlEncode(nickName, Encoding.UTF8);
                request.ContentType = "application/json; charset=UTF-8";
                request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537."+DateTime.Now.Second;
                request.Headers.Add("Cookie", cookie);
                request.ContentLength = data.Length;
                Stream newStream = request.GetRequestStream();

                // Send the data.
                newStream.Write(data, 0, data.Length);
                newStream.Close();

                // Get response
                HttpWebResponse myResponse = (HttpWebResponse)request.GetResponse();
                StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8);
                string content = reader.ReadToEnd();
                string err = myResponse.Headers["X-Error"];
                if (!string.IsNullOrEmpty(err))
                {
                    Console.WriteLine(index + " : err " + err);
                    Thread.Sleep(60 * 1000 * 5);
                    Send(nickName, title, text, index);
                }
                else
                {
                    Console.WriteLine(index + " : ok " + nickName);
                }
            }
            catch (Exception err)
            {
                Console.WriteLine(index + " : err " + nickName + " : " + err.Message);
            }
        }
        #endregion
        #region 采集粉丝的昵称

        static void GatherNickNames()
        {
            try
            {
                WebClient wc = new WebClient();
                wc.Headers.Add("user-agent", "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36");
                wc.Headers.Add("cookie", cookie);
                wc.Headers.Add("referer", "https://home.cnblogs.com/followers/");
                wc.Encoding = Encoding.UTF8;
                for (int i = 1; i <= 89; i++)
                {
                    string html = wc.DownloadString("https://home.cnblogs.com/followers/?page=" + i);
                    GetNickName(html);
                    Console.WriteLine(i);
                    Thread.Sleep(500);
                }
            }
            catch (Exception err)
            {
                Console.WriteLine(err.Message);
            }
        }
        private static void GetNickName(string html)
        {
            int startIndex = html.IndexOf("class=\"avatar_list\">");
            if (startIndex == -1) { return; }
            int endIndex = html.IndexOf("</ul>", startIndex);
            if (startIndex > endIndex) { return; }

            string text = html.Substring(startIndex, endIndex - startIndex);

            MatchCollection mc = Regex.Matches(text, "title=\"(.+)\"");
            if (mc != null && mc.Count > 0)
            {
                string[] names = new string[mc.Count];
                for (int i = 0; i < mc.Count; i++)
                {
                    names[i] = mc[i].Groups[1].Value;
                }
                File.AppendAllLines(path, names, Encoding.Default);

            }

        }
        #endregion

        static string path = AppDomain.CurrentDomain.BaseDirectory + "nicks.txt";
        static string cookie = @"";
    }
}

然而发现博客园对发送的次数有严格的限制,多数情况下你会得到一个:SendTooManyMessages

就当我内心开始对博客园又产生一丝抱怨的情感时,就在那一瞬间,我好像明白了什么。

博客园还是当年那个博客园,只是,我们变了,变的不那么的纯理想主义了。

原文地址:https://www.cnblogs.com/cyq1162/p/9112838.html

时间: 2024-11-05 01:03:24

想想就好:这些年,博客园没有变,变的只是我们的相关文章

彻查手机端浏览博客园出现广告一事!

背景: 不知什么起,用手机端浏览博客园的频率变多了. 也不知什么时候,浏览就成了这个样子,满屏是广告: 手机端就那么点空间,三分之二都是广告,我靠!!!!! 于是,不断追寻着真相!!! 1:怀疑打赏插件: 细心的网友发现,我把打赏插件去了,而是直接换成了在下面的两张图片. 在发现广告之初,我的思维是这样的: A:我发现其它人的博客基本没有广告. B:只有我的博客有广告. C:电脑没有,只有手机端出现. 因此,我怀疑我的博客链接的第3方的网址引发的. 于是,我彻查了一下,发现引入了第三方打赏插件的

我的版权何在?博客园就不维护博友文章的版权?

说到版权心里就很不爽,大家很多时候自己的利益都有被侵犯的时候,很多人感觉不再乎,以前自己也是. 自己以前在51cto技术博客也写博客,不能说每天都写吧,但是每周都会出新笔记,当时自己也有很多粉丝,当时朋友就给我说,记得写笔记啊,我们都等着看呢,晚上10点前发出来,我必看.当时自己把自己知道的,结合所学到的一块做成world文档,加图片,标注,一心一意的写,偶尔也会录个小视频.想着自己会有越来越多的粉丝,后来博客就被封了,就中午下去吃顿饭的功夫,后来申诉去了,说我博客内容雷同,想想可能版权的问题,

如何高效的利用博客园?

写在前面 在河南工作那会儿,虽然遇到问题也百度过,google过,但是很少留意内容来自哪个网站,也许是工作的内容太简单了,也许是太单调了,之后的之后就很少上网查东西了,因为模块相似,功能相似,代码写了n遍了.真不用了!后来也因为合同到期了,就选择了让我向往已久的北京. 来了北京后,发现自己其实很菜,之前那种玩法都是小儿科.不得不重新充实自己.然后就是不断的学习,不断的提高,一个偶然的机会,群里朋友说起了博客园,也是偶然的一个举动进博客园看了一看,不看不要紧,一看,二看.......从此以后我发现

博客园的开篇之我是幸运的

曾经对java有着无限的美好憧憬,可能是玩心未退,不知不觉已经是浪费将近两年,不过现在方然醒悟,我想在博客园来记录我的重新开始. 在这里我要分享或者是记录自己跟java之间的故事. 对java的缘分可以追溯到高考那年,那次高考已经是我的第二次高考了,在此申明LZ是学渣,并不是高考发挥失常而去补习一年,只不过是被硬逼着去补习的,不过最后连本科也都没考上,原因是因为英语只有39分...其实那个时候心里还是有所期待的只要英语考的好还是能上本科的(目标也是),成绩出来后整个人都不好了,后来的两个月我沉迷

bk-02 C++ vector用法 博客园

HappyWorking! 博客园 管理 C++ vector用法 在c++中,vector是一个十分有用的容器,下面对这个容器做一下总结. 1 基本操作 (1)头文件#include<vector>. (2)创建vector对象,vector<int> vec; (3)尾部插入数字:vec.push_back(a); (4)使用下标访问元素,cout<<vec[0]<<endl;记住下标是从0开始的. (5)使用迭代器访问元素. vector<int

博客园客户端UAP开发随笔 -- 奔跑吧,页面!

前言 页面导航,是App中的基本功,一般的App,一来一去,只需要简单的Navigate + Back就行了,一个复杂的App可能需要很多导航模式的混合才能实现最佳用户体验. SplashScreen 启动屏幕 我们先从最开始的SplashScreen说起吧.如果你把启动屏幕做成一个Page,启动时先显示一下,然后假装忙乎两秒,跳到下一个主页面开始进入正题,这个好像看上去也很美好.但是当用户玩命儿按Back键时,哦,露出马脚了,启动页面被唤出了.不过这个bug倒是不妨作为一个新奇的体验. MSD

来博客园安家了,表下决心

从系统网络安全转到程序员的行业也快3年的时间了,除了在刚开始写程序的那几个月的时间学了一些C++和MFC的东西,其余的时候就是闲逛,看看这个,学学那个,结果C++没学好,其他的也没学进去.其实原来做安全的时候也是这样,学了不少东西,但是没有一个深入的学习研究过,除了工作中确实需要的东西,其他都凭一时头脑发热就去学了,然后几周的时间就放弃,一直到现在一点渣渣都没剩在脑子里.算算从学这个专业以来学的东西还真不少:HTML.JavaScript.xml.C/C++.Java.Matlab.PHP.AS

(转载)记:从百度空间搬家到博客园--写博客要写的舒服

转自http://www.cnblogs.com/syxchina/archive/2011/10/03/2198468.html 一直都有把百度空间搬家的想法,但由于百度空间我将就的用了快3年了,也写了很多文章,交了很多朋友,实在舍不得,但最近实在忍不住百度空间的限制,字数限制.无代码格式化.不支持windows live writer,每次写博客格式图片处理很是伤心,很多时候甚至不写博客,直接记录在doc文件来的方便省心!但想想平时很多只是汲取与互联网谷歌,不贡献点实在说不过去!下定决心,搬

博客园客户端UAP开发随笔 -- App UI设计的三大纪律八项注意

前言 每一个页面都是这个App的门面,尤其是主页面,看上去干净整洁清爽宜人容易操作,那么你的App就成功了一半.这也反映出了你这个开发团队的基本审美素质和设计理念.如果你不是一个团队,而是一个个人开发者,建议你好好读读以下心得体会,相信会帮助你做出好看而实用的App.用一堆拥有丑陋UI的App充斥Window Store,不是我们高大上的程序员所为,被其他手机开发平台的开发者们耻笑. 三大纪律: 1)不乱用颜色.一个页面内不要超过3种颜色 2)不乱用大图片当背景.你是想让用户看你的背景图片呢,还