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

     

  • 相关阅读:
    SELinux
    Horovod
    kubeflow
    k8s Custom Resource
    k8s Service
    k8s Deployment
    k8s ReplicaSet
    BytePS源码解析
    突破传统 OJ 瓶颈,“判题姬”接入云函数
    前端如何真正晋级成全栈:腾讯 Serverless 前端落地与实践
  • 原文地址:https://www.cnblogs.com/jjg0519/p/12610633.html
Copyright © 2011-2022 走看看