当前位置: 首页 > 编程笔记 >

C#实现的中国移动官网手机号码采集器

郗阳德
2023-03-14
本文向大家介绍C#实现的中国移动官网手机号码采集器,包括了C#实现的中国移动官网手机号码采集器的使用技巧和注意事项,需要的朋友参考一下

早几天要换号码,到移动营业厅去办说稍微看的顺眼的号码就要预存多少多少。我觉得好坑,但是在官网又找不到稍微顺眼的。无奈之下没办法写了这个采集软件。主要是想弥补官网搜索不方便的缺陷。下面上代码,比较简单:


static void Main(string[] args)

{

    string[] t = { "134", "135", "136", "137", "138", "139", "147", "150", "151", "152", "157", "158", "159", "182", "183", "187", "188" };

    string numberPattern = @"<a data-original-title="" title="">.*?)""(.*?)</a>";

 

    for (int i = 0; i < t.Length; i++)

    {

        int pageCount = 1;

        int page = 0;

        string postdata = "page={0}&tdShopSelectionSuc.mobileType=0&tdShopSelectionSuc.selectArea=0731&tdShopSelectionSuc.selectAreaName=%E9%95%BF%E6%B2%99&tdShopSelectionSuc.numberSeg={1}________&tdShopSelectionSuc.numberRule=&tdShopSelectionSuc.searchStr=___________&tdShopSelectionSuc.endNumberRule=&tdShopSelectionSuc.storedValueStart=&tdShopSelectionSuc.storedValueEnd=&tdShopSelectionSuc.compositor=2&tdShopSelectionSuc.switchList=0&retryQuery=yes&numPriceSort=&numSort=1&pages.pageSize=15";

        string posturl = "https://www.hn.10086.cn/Shopping/selects/nos_queryPhoneInfo.action?timeStamp=" + ((DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000000) + "" + new Random().Next(100, 999);

 

        for (int p = 0; p < pageCount; p++)//翻页

        {

            Console.WriteLine("正在获取{0}的所有号码,当前页码:{1}", t[i], page);

            string html = HttpHelper.GetHtml(posturl, string.Format(postdata, page, t[i]), true);

            if (html == "") { continue; }

            if (pageCount == 1)

            {

                pageCount = int.Parse(Regex.Match(html, @"var pageCount = '(?.*?)';").Groups["value"].Value);

            }

            MatchCollection ms = Regex.Matches(html, numberPattern);

            foreach (Match m in ms)

            {

                string number = m.Groups["value"].ToString();

                if (!Exists(number))

                {

                    DbHelperSQL.ExecuteSql("INSERT INTO Number(Number)VALUES('" + number + "')");

                }

                Console.WriteLine("号码:" + number);

            }

            page++;

        }

    }

    Console.WriteLine("结束.");

    Console.ReadKey();

}

既然号码采集到数据库了,那就顺便写个SQL把心仪的号码筛选出来吧:

ABAB型:


select * from telephone where SUBSTRING(telenumber,8,2)=SUBSTRING(telenumber,10,2) and SUBSTRING(telenumber,8,1)!=SUBSTRING(telenumber,11,1);

AABB型:


select * from telephone where SUBSTRING(telenumber,8,1)=SUBSTRING(telenumber,9,1) and SUBSTRING(telenumber,10,1)=SUBSTRING(telenumber,11,1) and SUBSTRING(telenumber,8,1)!=SUBSTRING(telenumber,11,1);

AAAB型:


select * from telephone where SUBSTRING(telenumber,8,1)=SUBSTRING(telenumber,9,1) and SUBSTRING(telenumber,9,1)=SUBSTRING(telenumber,10,1) and SUBSTRING(telenumber,8,1)!=SUBSTRING(telenumber,11,1);

ABBB型:


select * from telephone where SUBSTRING(telenumber,9,1)=SUBSTRING(telenumber,10,1) and SUBSTRING(telenumber,11,1)=SUBSTRING(telenumber,10,1) and SUBSTRING(telenumber,8,1)!=SUBSTRING(telenumber,11,1);

AAAA型:


select * from telephone where SUBSTRING(telenumber,8,2)=SUBSTRING(telenumber,10,2) and SUBSTRING(telenumber,8,1)=SUBSTRING(telenumber,11,1);

 类似资料:
  • 本文向大家介绍jquery实现手机号码选号的方法,包括了jquery实现手机号码选号的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了jquery实现手机号码选号的方法。分享给大家供大家参考。具体如下: 前段时间看到联通的自由组合套餐非常诱人于是决定换号,但选号是个非常累人的活在免费的号码列表中选了好久都没选到心仪的号码,于是写了个脚本去分析这些手机号码,虽然不是非常准确,但至少把那堆

  • 有没有办法在Java中找到电话号码的国家代码?如果我给9710334544,我将收到国家代码91(如果是印度)。 有什么建议吗。

  • 本文向大家介绍PHP实现采集中国天气网未来7天天气,包括了PHP实现采集中国天气网未来7天天气的使用技巧和注意事项,需要的朋友参考一下 前言 我们在写一个Web程序的时候,总会想着把自己的网站更美观一些,功能能更多一些,有时候写一些小的工具或者加上小的插件会让我们的站点更加完善。比如万年历功能,比如我们现在要讲的天气预报功能。 当然我们没法利用专业的卫星接受数据,所以我们的天气数据来自现有的天气预

  • 本文向大家介绍js手机号批量滚动抽奖实现代码,包括了js手机号批量滚动抽奖实现代码的使用技巧和注意事项,需要的朋友参考一下 我们平时在看一些选秀节目或一些歌唱类比赛节目时经常会看到在现场的大屏幕上会有观众的手机号在滚动来选出谁是幸运观众或谁中了什么奖项,这些手机号都是现场观众或场外观众在给选手投票时产生的,当主持人一声开始令下,大屏幕上的手机号就会快速随机滚动,当主持人一声停令下,大屏幕上会随机出

  • 本文向大家介绍js实现显示手机号码效果,包括了js实现显示手机号码效果的使用技巧和注意事项,需要的朋友参考一下 效果图: 代码如下: 以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持呐喊教程!

  • 本文向大家介绍Android 手机获取手机号实现方法,包括了Android 手机获取手机号实现方法的使用技巧和注意事项,需要的朋友参考一下 最近做到一个项目,需要获取手机号。项目中使用的手机卡为电信卡,那么就以此为例吧。 网上不符合需求的方法 Google了一下,网上的做法如下: 添加权限: <uses-permissionandroid:nameuses-permissionandroid:na