zoukankan      html  css  js  c++  java
  • 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即可下载

     

    效果

     

     

    原文:http://www.yzswyl.cn/blread-1603.html

     

  • 相关阅读:
    AS将一个项目导入到另一个项目中
    Android Studio出现:Cause: unable to find valid certification path to requested target
    小米手机Toast带app名称
    PopupWindow 点击外部区域无法关闭的问题
    EditText inputType类型整理
    Fragment通过接口回调向父Activity传值
    Android selector一些坑
    Installation failed with message Failed to commit install session 634765663 with command cmd package
    旷视上海研究院机器人方向招聘
    语义SLAM的数据关联和语义定位(四)多目标测量概率模型
  • 原文地址:https://www.cnblogs.com/jjg0519/p/12610633.html
Copyright © 2011-2022 走看看