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

原文地址:https://www.cnblogs.com/jjg0519/p/12610633.html

时间: 2024-08-27 21:19:31

c#实现从其他网站抓取imei码信息,手工输入验证码的相关文章

被惩罚的网站抓取不会减少BGP

被惩罚的网站抓取不会减少BGP, 网站被惩罚是一个非常令人苦恼的事情,得易搜信息网因为网站被惩罚往往伴随着索引量减少,关键词排名下降,流量减少等,自己的成果付之东流,没人愿意看到.很多人认为被搜索引擎惩罚就相当于被贴上了"垃圾"的标签,被牢牢的抓住了,再也翻不了身,搜索引擎也不会再很好的抓取这个网站,事实如此吗? 被惩罚的网站,抓取不会减慢 是否谷歌抓取被惩罚的站点频率会更少或更慢?谷歌回应,通常对被惩罚的网站,抓取不会减慢.因为网站被某个算法惩罚后,需要等待谷歌抓取这个网站,提取网站

Python爬虫实战---抓取图书馆借阅信息

原创作品,引用请表明出处:Python爬虫实战---抓取图书馆借阅信息 前段时间在图书馆借了很多书,借得多了就容易忘记每本书的应还日期,老是担心自己会违约,影响日后借书,而自己又懒得总是登录到学校图书馆借阅系统查看,于是就打算写一个爬虫来抓取自己的借阅信息,把每本书的应还日期给爬下来,并写入txt文件,这样每次忘了就可以打开该txt文件查看,每次借阅信息改变了,只要再重新运行一遍该程序,原txt文件就会被新文件覆盖,里面的内容得到更新. 用到的技术: Python版本是 2.7 ,同时用到了ur

教您使用java爬虫gecco抓取JD全部商品信息

gecco爬虫 如果对gecco还没有了解可以参看一下gecco的github首页.gecco爬虫十分的简单易用,JD全部商品信息的抓取9个类就能搞定. JD网站的分析 要抓取JD网站的全部商品信息,我们要先分析一下网站,京东网站可以大体分为三级,首页上通过分类跳转到商品列表页,商品列表页对每个商品有详情页.那么我们通过找到所有分类就能逐个分类抓取商品信息. 入口地址 http://www.jd.com/allSort.aspx,这个地址是JD全部商品的分类列表,我们以该页面作为开始页面,抓取J

scrapy抓取拉勾网职位信息(一)——scrapy初识及lagou爬虫项目建立

本次以scrapy抓取拉勾网职位信息作为scrapy学习的一个实战演练 python版本:3.7.1 框架:scrapy(pip直接安装可能会报错,如果是vc++环境不满足,建议直接安装一个visual studio一劳永逸,如果报错缺少前置依赖,就先安装依赖) 本篇主要对scrapy生成爬虫项目做一个基本的介绍 tips:在任意目录打开cmd的方式可以使用下面这两种方式 shift + 右键打开cmd(window10的powershell你可以简单理解为cmd升级版) 在路径框直接输入cmd

Python爬虫技术干货,教你如何实现抓取京东店铺信息及下载图片

什么是Python爬虫开发 Python爬虫开发,从网站某一个页面(通常是首页)开始,读取网页的内容,找到在网页中的其它链接地址,然后通过这些链接地址寻找下一个网页,这样一直循环下去,直到把这个网站所有的网页都抓取完为止.世界上80%的爬虫是基于Python开发的,学好爬虫技能,可为后续的大数据分析.挖掘.机器学习等提供重要的数据源. Python爬虫实例参考 这是一个用Python爬虫实现抓取京东店铺信息以及下载图片的例子,仅供参考. 信息抓取: 图片下载的:注意: 1.在选择信息的时候用CS

Java广度优先爬虫示例(抓取复旦新闻信息)

一.使用的技术 这个爬虫是近半个月前学习爬虫技术的一个小例子,比较简单,怕时间久了会忘,这里简单总结一下.主要用到的外部Jar包有HttpClient4.3.4,HtmlParser2.1,使用的开发工具(IDE)为intelij 13.1,Jar包管理工具为Maven,不习惯用intelij的同学,也可以使用eclipse新建一个项目. 二.爬虫基本知识 1.什么是网络爬虫?(爬虫的基本原理) 网络爬虫,拆开来讲,网络即指互联网,互联网就像一个蜘蛛网一样,爬虫就像是蜘蛛一样可以到处爬来爬去,把

python实现爬虫(一)--- Scrapy框架抓取豆瓣书籍信息

Scrapy是一个用python实现都爬虫框架,简单易用,功能强大,只需要在框架的基础上自定义自己的分析规则即可,具体如何新建工程等待都在官方文档上面讲解得非常清楚,官方文档tutorial(http://doc.scrapy.org/en/latest/intro/tutorial.html)请保证下载较新版本的Scrapy(我的是0.24.2,scrapy -v)旧版本会出现一些问题. 下面我使用Scrapy抓取豆瓣上面编程书籍的一些简单信息 一.准备爬取的页面如下,新建一个douban工程

使用python3抓取pinpoint应用信息入库

使用python3抓取pinpoint应用信息入库 Pinpoint是用Java编写的大型分布式系统的APM(应用程序性能管理)工具. 受Dapper的启发,Pinpoint提供了一种解决方案,通过在分布式应用程序中跟踪事务来帮助分析系统的整体结构以及它们中的组件之间的相互关系. pinpoint api: /applications.pinpoint 获取applications基本信息 /getAgentList.pinpoint 获取对应application agent信息 /getSe

【网站抓取】如何正确识别Baiduspider移动ua

百度站长平台发布公告宣布新版Baiduspider移动ua上线,同时公布了PC版Baiduspider ua,那么该如何正确识别移动ua呢?我们百度站长平台技术专家孙权老师给出了答案: 新版移动ua: Mozilla/5.0 (Linux;u;Android 4.2.2;zh-cn;) AppleWebKit/534.46 (KHTML,like Gecko) Version/5.1 Mobile Safari/10600.6.3 (compatible; Baiduspider/2.0; +h