c#实现从其他网站抓取imei码信息,手工输入验证码
阅读全文:http://www.yzswyl.cn/blread-1603.html
功能:从其他网站手工输入验证码并抓取手机IMEI信息
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Net; using System.IO; namespace getImei { public partial class Form1 : Form { private String imgUrl; string url = "http://abc.aspx";//抓取的地址 private WebBrowser wb = new WebBrowser(); Uri baseUri; WebClient wc = new WebClient(); public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { wb.Navigate(url); wb.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser_DocumentCompleted); } //重新获取验证码 private void button1_Click(object sender, EventArgs e) { wb.Navigate(url); wb.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser_DocumentCompleted); } private void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { if (wb.Document.Url == e.Url) { //加载完毕。 HtmlAgilityPack.HtmlDocument html = new HtmlAgilityPack.HtmlDocument(); html.LoadHtml(wb.DocumentText); HtmlAgilityPack.HtmlNode htmlNode = html.DocumentNode; HtmlAgilityPack.HtmlNode tagImg = htmlNode.SelectSingleNode("//*[@id=\"SNTD\"]/img"); if (tagImg != null) { string imgReUri = tagImg.GetAttributeValue("src", ""); baseUri = new Uri(url); Uri imgUri = new Uri(baseUri, imgReUri); byte[] imgData = wc.DownloadData(imgUri); pictureBox1.Image = BytesToImage(imgData); } } if (wb.Document.Url.ToString().Contains("Check/IMEIValidateDetail.aspx?a=")) { //内容 HtmlAgilityPack.HtmlDocument html = new HtmlAgilityPack.HtmlDocument(); html.LoadHtml(wb.DocumentText); HtmlAgilityPack.HtmlNode htmlNode = html.DocumentNode; HtmlAgilityPack.HtmlNode summary = htmlNode.SelectSingleNode("//table[@class=\"checkContent2\"]"); if (summary != null) { //webBrowser1.DocumentText = summary.InnerText; richTextBox1.Text = summary.InnerHtml; } //图片 HtmlAgilityPack.HtmlNode iframe = htmlNode.SelectSingleNode("//table[@class=\"checkContent2\"]/tr[1]/td[1]/iframe"); if (iframe != null) { string frameRes = iframe.GetAttributeValue("src", "无图片"); Uri frameUri = new Uri(baseUri, frameRes); string iframePageData = wc.DownloadString(frameUri); html.LoadHtml(iframePageData); htmlNode = html.DocumentNode; HtmlAgilityPack.HtmlNode imgNode = htmlNode.SelectSingleNode("//*[@id=\"imgEQ\"]"); if (imgNode != null) { string thumbRes = imgNode.GetAttributeValue("src", ""); Uri thumbUri = new Uri(baseUri, thumbRes); pictureBox2.Load(thumbUri.ToString()); } } } } public static Image BytesToImage(byte[] bytes) { MemoryStream ms = new MemoryStream(bytes); Image img = Image.FromStream(ms); return img; } //抓取IMEI内容 private void button2_Click(object sender, EventArgs e) { wb.Document.GetElementById("ctl00$ContentPlaceHolder1$IMEICode").InnerText = "****************";//手机IMET号码 wb.Document.GetElementById("ctl00_ContentPlaceHolder1_txtValidateCode").InnerText = textBox1.Text; wb.Document.GetElementById("ctl00_ContentPlaceHolder1_submit").InvokeMember("click"); while (wb.ReadyState != WebBrowserReadyState.Complete) { Application.DoEvents(); } } //查看详细信息 private void button3_Click(object sender, EventArgs e) { foreach (HtmlElement he in wb.Document.GetElementsByTagName("a")) { if ("(查看详细)".Equals(he.InnerText.Trim())) { he.InvokeMember("click"); break; } } } } }
控件:
pictureBox1
label1
textBox1
button1
button2
button3
pictureBox2
richTextBox1
引用:
下载HtmlAgilityPack,添加引用,下载地址:http://htmlagilitypack.codeplex.com/ ,点击右侧的download即可下载
效果:
此博客已不再更新,如需查看最新文章请访问雪洁之家