有段时间不写博客了,最近工作压力比较大,大家在忙什么,新近安装了Win7的操作系统,感觉很不错,还体验了一把IE9,里面的开发人员工具很好用

说到这个大家可以用火狐的谷歌的都行,在这个例子中我主要使用IE9自带的分析一下hao123的手机号码归属地查询的问题。

我们先来看看下面的图片吧

在hao123的这个界面里我们只要输入一个手机号不管是移动,联通,电信的都可以,单击查询就可以直接查询到归属地,和号码类型,网上这样的

网站很多,我就以这个为例子吧,那我们怎么样把这些信息放到我们自己的网站上呢?

我们先来分析一下,其实很方便,我们在IE9下打开这个界面然后在工具---开发人员工具,或是直接安f12也是一样的效果,我们安界面定位到如下图

我们先单击网络然后单击开始捕获,这个时候我们再单击一下查询按钮看看会出现什么情况

是不是出现两个整个,第一个很明显是加载我们所输入号归属地信息,第一个是加载一个图片,对我们没有任何用处,这里不管它,现在我们

来单击一下第一个方法看看捕获到了什么

phone.callBack({"Mobile":"13888888888","QueryResult":"True","Province":"云南","City":"昆明","AreaCode":"0871","PostCode":"650000","Corp":"中国移动","Card":"GSM"});

用手机号,省,市,还有邮编,号码类型等信息。这样看的话是不是我们直接把这个地区复制到地址栏里就行了,那咱们一起来看看效果吧

果然没错就是我们想要的东西,大家别急,其它还可以更简单,我们来看一下这个URL

直接放到地址栏里试试效果

呵呵,很神奇吧,居然得到的是一个Xml文件

这就像是我们在调用WebServces一样简单了,我们只要写一个程序请求这个地址就可以得到我们想要的效果了。

随便新建一个项目,一起来看一下

我就不一步一步的分析了大家直接看我的代码

usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.Net;usingSystem.IO;usingSystem.Security.Cryptography.X509Certificates;usingSystem.Net.Security;usingSystem.Security.Cryptography;usingSystem.Xml;namespaceccbText

{publicpartialclassForm2 : Form

{publicForm2()

{

InitializeComponent();

}privatevoidForm2_Load(objectsender, EventArgs e){}这个方法在这里没有用到,大家可以做为参考//传入URL返回网页的html代码//URL///publicstringGetUrltoHtml(stringUrl)

{

StringBuilder content=newStringBuilder();try{//与指定URL创建HTTP请求HttpWebRequest request=(HttpWebRequest)WebRequest.Create(Url);

request.KeepAlive=false;//获取对应HTTP请求的响应HttpWebResponse response=(HttpWebResponse)request.GetResponse();//获取响应流Stream responseStream=response.GetResponseStream();//对接响应流(以"GBK"字符集)StreamReader sReader=newStreamReader(responseStream, Encoding.GetEncoding("utf-8"));//开始读取数据Char[] sReaderBuffer=newChar[256];intcount=sReader.Read(sReaderBuffer,0,256);while(count>0)

{

String tempStr=newString(sReaderBuffer,0, count);

content.Append(tempStr);

count=sReader.Read(sReaderBuffer,0,256);

}//读取结束sReader.Close();

}catch(Exception)

{

content=newStringBuilder("Runtime Error");

}returncontent.ToString();

}//好123查询,符合下列规则也可使用///返回xml///需要顺序的节点:///QueryResult(查询结果状态True,False)///Province(所属省份)///City(所属地区)///Corp(服务商)///Card(卡类型 GSM)///AreaCode(区号)///PostCode(邮编)publicstaticstring[] GetInfoByxml(stringurl,stringmobileNum)

{try{

XmlDocument xml=newXmlDocument();//xml.LoadXml("<?xml  version='1.0' encoding='utf-8' ?>15890636739True河南郑州0371450000中国移动GSM");xml.Load(string.Format(url, mobileNum));

XmlNamespaceManager xmlNm=newXmlNamespaceManager(xml.NameTable);

xmlNm.AddNamespace("content","http://api.showji.com/Locating/");

XmlNodeList nodes=xml.SelectNodes("//content:QueryResult|//content:Mobile|//content:Province|//content:City|//content:Corp|//content:Card|//content:AreaCode|//content:PostCode", xmlNm);if(nodes.Count==8)

{if("True".Equals(nodes[1].InnerText))

{returnnewstring[] { nodes[0].InnerText, nodes[2].InnerText+nodes[3].InnerText, nodes[6].InnerText+nodes[7].InnerText, nodes[4].InnerText, nodes[5].InnerText };

}

}returnnewstring[] {"FALSE"};

}catch{returnnewstring[] {"FALSE"};

}

}//调用方法查询数据privatevoidbutton1_Click(objectsender, EventArgs e)

{foreach(stringiteminGetInfoByxml("http://vip.showji.com/locating/?m={0}", txtMobile.Text.Trim()))

{

richTextBox1.Text+="__"+item;

}

}

}

}

运行一下看看效果吧

我是用Winfrom做的测试,大家如果想用Asp。Net也是一样的,把我的方法复制到你的Web页面的Cs代码下就OK了。

好了我们的分析到这里就算是结束了,

在这里我再给大空补充一个关于调用带有证书的网站的调用 方法

因为带证书的都是在要验证证书文件的,我们在这里直接让他在本地回调验证,这样的话就要吧重写方法了,下在看一下回调的方法吧

//回调验证证书问题publicboolCheckValidationResult(objectsender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)

{//总是接受returntrue;

}

其它很简单只要在 我们上面的方法GetUrltoHtml()中加入几行代码就行了,修改后的方法

//传入URL返回网页的html代码//URL///publicstringGetUrltoHtml(stringUrl)

{

StringBuilder content=newStringBuilder();try{//与指定URL创建HTTP请求ServicePointManager.ServerCertificateValidationCallback=newSystem.Net.Security.RemoteCertificateValidationCallback(CheckValidationResult);//验证HttpWebRequest request=(HttpWebRequest)WebRequest.Create(Url);

request.KeepAlive=false;

request.UserAgent="Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2; MS-RTC LM 8; .NET4.0C; .NET4.0E)";

request.Method="GET";

request.Accept="*/*";//创建证书文件X509Certificate objx509=newX509Certificate(Application.StartupPath+"\\123.cer");//添加到请求里request.ClientCertificates.Add(objx509);

HttpWebResponse response=(HttpWebResponse)request.GetResponse();//获取对应HTTP请求的响应//获取响应流Stream responseStream=response.GetResponseStream();//对接响应流(以"GBK"字符集)StreamReader sReader=newStreamReader(responseStream, Encoding.GetEncoding("GBK"));//开始读取数据Char[] sReaderBuffer=newChar[256];intcount=sReader.Read(sReaderBuffer,0,256);while(count>0)

{

String tempStr=newString(sReaderBuffer,0, count);

content.Append(tempStr);

count=sReader.Read(sReaderBuffer,0,256);

}//读取结束sReader.Close();

}catch(Exception)

{

content=newStringBuilder("Runtime Error");

}returncontent.ToString();

}

php网页抓取浏览者手机号码_提供一个网页抓取hao123手机号码归属地的例子相关推荐

  1. 让一个网页打开的同时自动为另一个网页自动填写表单并提交

    让一个网页打开的同时自动为另一个网页自动填写表单并提交   if  you  use  "window.open"  to  open  the  window,you  can  ...

  2. 爬虫取中间文本_小小爬虫批量抓取微信推文里的图片

    哈喽,大家好,今天给大家分享一个特别特别小的爬虫案例! 爬取微信推文中的图片!!!! 有人说,这有啥用,,,,万一人家推文是放的是以图片的方式放的某个PPT的内容呢,你想把它弄下来,咋整,就是爬取啦. ...

  3. python爬取app聊天信息_手把手教你爬取手机app中的信息

    使用工具:Fiddler+基础爬虫 Fiddler是一个抓包神器,用来检查电脑和互联网之间所有的通讯内容,而且比较简单容易上手,显示的格式也比较友好. 网页基本都会爬了,现在开始要想想如何去爬手机ap ...

  4. python爬取微信运动_如何利用Python爬取微信运动中各个好友的运动信息

    2018-11-20 回答 主要思路 从ui获取文本信息是最为简单的方法,于是应该优先逆向ui代码部分. 逆向微信apk 首先解包微信apk,用dex2jar反编译classes.dex,然后用jd- ...

  5. python爬取bilibili数据_如何使用Python爬取bilibili视频(详细教程)

    Python爬取bilibili视频 摘要 为了解决PC端的bilibili无法下载视频的问题,使用python语言可以实现一个能够爬取bilibili某个视频资源(不包括会员视频)的程序.采用整个视 ...

  6. java 取整符号_浅析java中的取整(/)和求余(%)

    1.取整运算符 取整从字面意思理解就是被除数到底包含几个除数,也就是能被整除多少次,那么它有哪些需要注意的地方呢?先看下面的两端代码: int a = 10; int b = 3; double c= ...

  7. 让FLASH背景透明-可运用于在网页内的FLASH内嵌入另一个网页

    在网页中插入FLASH的时候,添加一个属性   <param name="wmode" value="transparent"> ,这样所插入的FL ...

  8. 网页怎么算切屏_十种切屏抓取方法(图形)

    屏幕截取招招看!教你十种屏幕抓取方法(图形) 说起屏幕截图,相信大家都不会陌生:随意翻翻每期的<电 脑报> ,哪篇不是图文并茂 ? 但是对于刚刚接触电脑的朋友来说, 对如何进行抓图还摸不着 ...

  9. python抓取网站乱码_如何使用Python抓取网站

    python抓取网站乱码 by Devanshu Jain 由Devanshu Jain It is that time of the year when the air is filled with ...

  10. python爬取pdf教程_#如何利用Python抓取PDF中的某些内容#python爬取pdf教程

    如何利用Python抓取PDF中的某些内容 学生每天要学习,工作者要工作,家庭主妇每都要务.不论做什么,都有着相应的操作流同样就会有操作技巧.学生运用技巧学习才不会累,学得还会更快更多:工作者掌握技巧 ...

最新文章

  1. python matplotlib绘制折线图
  2. PLSQL重点问题理解和实战
  3. 《LINUX下动态链接库的创建与应用》
  4. 如何满足二级数据服务之需
  5. Exchange系列—Exchange自带灾难恢复工具使用
  6. Vue+Element!一千字带你编写合理的编辑,查看,新建!
  7. 天猫整站SSM-分页-总结(做个人学习笔记整理用)
  8. 计算机病毒属于什么类工具,什么是计算机病毒?有哪些类型
  9. Jenkins使用及开发
  10. vmware esxi 升级 SCSI RAID卡驱动
  11. Kafka从上手到实践 - 庖丁解牛:Consumer | 凌云时刻
  12. WMS系统多少钱?什么是WMS系统
  13. 强大的诺顿扼杀了alexa工具条
  14. 如何在 Next.js 中实现重定向
  15. win10红警2黑屏_Windows10黑屏常见情况及解决办法
  16. 微信小程序图集短视频去水印源码教程
  17. SecureCRT远程操作linux系统
  18. UML软件开发与建模工具Enterprise Architect发布最新版本v15.2
  19. 差分方程模型(一):模型介绍与Z变换
  20. 陌陌走向全面衰退真怪不得疫情

热门文章

  1. HDU 5855 Less Time, More profit(最大权闭合图)
  2. 毫末追击智能驾驶1000天,对战蔚小理将现胜负手
  3. 云计算、大数据和人工智能之间的关系
  4. CVE-2015-1427 ElasticSearch(Groovy 沙盒绕过 代码执行漏洞)
  5. 2015年秋季腾讯校园招聘开发岗笔试题(四道大题)
  6. Unity5.1 新的网络引擎UNET(一) 概括1
  7. The system clock has been set back more than 24 hours
  8. 你能发现什么?又能坚持什么?
  9. 360浏览器打不开html5文件,电脑360浏览器打不开网页原因-浏览器打不开解决方法 - 系统家园...
  10. 地震模拟在计算机,地震模拟计算机,seismic analog computer,音标,读音,翻译,英文例句,英语词典...