网站地址www.pceggs.com/login.aspx....首先,baidu,google,csdn,vbgood里搜到的方法都已经过时了...这个网站上周改版前,我还可以抓到它的验证码...可是现在直接输入验证码的地址链接,就会跳到网站主页.....希望哪位朋友帮忙看看..给个思路..不一定是完整代码...思路就行...最好是用xmlhttp方法获取...ps: 希望想帮忙的先到上面网址看下....以往的获取方法是抓不到的....
    另..不是给网站打广告...真的是纯粹的技术交流....

解决方案 »

  1.   

    附上我自己的方法..这个方法前两天还能抓到...现在不行了...所以请教各位朋友..有没有新的思路...谢谢回贴的每一位...
    Public Function GetCheckCode()    Dim xmlHttp As Object
        Dim Pic
        Dim PicData As Object    Set xmlHttp = CreateObject("Microsoft.XMLHTTP")
        Set PicData = CreateObject("Adodb.Stream")
        xmlHttp.open "get", "http://www.pceggs.com/CheckCode.aspx", True
        xmlHttp.setRequestHeader "Accept", "*/*"
        xmlHttp.setRequestHeader "Referer", "http://www.pceggs.com/Login.aspx"
        xmlHttp.setRequestHeader "Accept-Language", "zh-cn"
        xmlHttp.setRequestHeader "Accept-Encoding", "gzip, deflate"
        xmlHttp.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; InfoPath.1; .NET CLR 2.0.50727)"
        xmlHttp.setRequestHeader "Host", "www.pceggs.com"
        xmlHttp.setRequestHeader "Connection", "Keep-Alive"
        xmlHttp.send
        While xmlHttp.ReadyState <> 4
            DoEvents
        Wend
        Pic = xmlHttp.responseBody
        With PicData
            .Type = 1
            .open
            .write Pic
            .SaveToFile App.Path & "\CheckCode.jpg", 2
            .Cancel
            .Close
        End With
        Set PicData = Nothing
        Set xmlHttp = Nothing
        frmLogin.ImgYZM.Picture = LoadPicture(App.Path & "\CheckCode.jpg")
    End Function
      

  2.   

    你尽扯, 我这边直接输入http://www.pceggs.com/CheckCode.aspx
    他就没跳到主页.
      

  3.   

    http://www.pceggs.com/CheckCode.aspx  验证码 原来可以这么看...
     学习了 世界真奇妙LZ啊  楼上说的是真的
    LZ啊 试了下 你说的也是真的-------------------------------------------------------------
    虽然不知道你那语言啥意思但是 试了一下后 我知道你问的啥意思了 你说一进http://www.pceggs.com/CheckCode.aspx 就会自动变为主页http://www.pceggs.com/
    我很肯定的告诉你!  我和你一样 
      但是不知道你发现没有
    先输入www.pceggs.com/login.aspx 再在同一网页输入http://www.pceggs.com/CheckCode.aspx 就可以了看到上次验证码的图片了 不过貌似上次就不再有效了.....我再试试...再想想...
      

  4.   

    以下 信息摘自百度搜索结果
    -----------------------------------------------------------------
    验证码使用正确才能保证其效果
    现在一些稍微大一点的网站doou才用验证码来防止用户通过一些程序自动向网站提交信息,保证网站的安全。
    可是,在实践的过程中发现,好多网站在验证码的使用上并不正确,就跟没有验证码一样。
    其实,只要我们看看验证码的原理就明白了:
    验证码通常是一张图片,是由我们的网站程序通过数据流的方式直接写到客户端浏览器上的。通常服务器端程序会随即生成一定长度的验证码字符串,比如4位的数字,把当前生成的这个数字保存在Session当中,然后生成图片发送到客户端,当客户端提交信息的时候,只要把用户提交的验证码和Session当中保存的验证码一比较就可以了。注意:在比较完之后,一定还要再生成一个验证码,保存在Session当中,这样当下次用户还提交相同的数据的时候就通不过了。道理很简单,谁都明白,不过还是有相当多的网站不是这么做的,这样的话,验证码就只能是个吓唬人的摆设了。
    --------------------------------------------------------------------
    那个是随手复制了一些 内容 不知道对你有没用下面 我说下我实验的过程 (网址都简写了)
    “http://www.pceggs.com/CheckCode.aspx ”=“ /CheckCode.aspx ”其他类似清除所有临时文件 关闭 那个网站后
    输入pceggs.com/后回车 显然进入网站主页 
    点登陆进入 /login.aspx  
    新建主页(百度首页 反正不是PC蛋蛋)输入 /CheckCode.aspx 回车  网页自动快速刷新了几下后进入 又主页接着 点开后打开网页的 点击登录按钮进入 /login.aspx  
    在前一个网页 输入/CheckCode.aspx 就可以得到你想要的结果多次尝试后 得出以下3点想法,不知道对你有没有用
    1. 要想得到你想要的结果,/CheckCode.aspx必须从/login.aspx  这个登陆网页进入才行 新建一个网页进入/login.aspx  在进入/CheckCode.aspx也可以
    2. 在源代码里发现了个 http://www.pceggs.com/logindo.aspx 你可以看看这个和 /login.aspx 的区别
    3. 在临时文件里发现 CheckCode.aspx 文件 用记事本打开后前面一半为乱码 (难道是加密?)每次网页刷新后 其大小不一样
    感觉 登陆界面只要不刷新 验证码就在本机上 你为什么那么急呢?
    主要还是不懂那语言 不知道你想干什么 所以试有些茫然  不知道对你有没有帮助
      

  5.   

    你可以用webbrowser直接枚举图片并转图嘛,干嘛非要打开那个验证码的地址,绝大部分网站的验证码地址你一打开就会给你生成一个新的验证码,就像126邮箱注册的验证码,只有抓取图片.你打开验证码地址就是一个新的.我试验了,你那验证码在网页中的index是5.
      

  6.   

    哗....果然高手如云哦...呵呵....我怎么就没想到4楼和5楼的方法呢...汗个...唉..看来偶真的还是新手啊....回头我试下....先谢谢楼上几位....顺便回复6楼...webbrowser的方法我已经可以获取了...而且inet控件也可以获取.....但是我的程序开始就选择了xmlhttp方法,,所以如果用其它方法,就要动大手术咯...呵呵...而且在这里遇到问题了..就想办法解决下咯...解决了才会进步嘛..呵呵...纯粹是想多学点东西..毕竟新手嘛...
      

  7.   

    回复6楼..顺便5楼一起.....呵呵昨晚在家按照两位说的方法试了一下...还是不行...不管怎么新开网页...都是跳转至主页.....所以又有了新的问题...1. 不知道二位用的是什么浏览器....ie6,ie7,还是傲游..或者其他的...我用ie6和theworld都不行....2. 是不是因为你们第一次访问这个网站,而我已经用各种方法通过程序访问这个网站n多次了...所以它站内就会把一些能够识别我电脑的信息保存下来....让我用你们说的方法也不能访问呢...就像把我拉到黑名单一样....让我怎么都不能直接看到那个图片...反正我公司和家里两台电脑都不行....3. 还有个问题...就是用我上面2楼那个函数的方法,抓取的时候,我用抓包程序,抓取到的内容,发现没有referer这一项....而用inet控件抓取就有...因为要访问/checkcode.aspx需要referer这个header的参数...或者就不是我第二条说的那样...而是网站自己收到request的时候,判断referer的发送方式?对网络应用还不太了解....如果说的不对别见笑....汗...
      
    *****************************************************************************
    欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码) http://feiyun0112.cnblogs.com/
      

  8.   

    回复6楼..顺便5楼一起.....呵呵昨晚在家按照两位说的方法试了一下...还是不行...不管怎么新开网页...都是跳转至主页.....所以又有了新的问题...1. 不知道二位用的是什么浏览器....ie6,ie7,还是傲游..或者其他的...我用ie6和theworld都不行....2. 是不是因为你们第一次访问这个网站,而我已经用各种方法通过程序访问这个网站n多次了...所以它站内就会把一些能够识别我电脑的信息保存下来....让我用你们说的方法也不能访问呢...就像把我拉到黑名单一样....让我怎么都不能直接看到那个图片...反正我公司和家里两台电脑都不行....3. 还有个问题...就是用我上面2楼那个函数的方法,抓取的时候,我用抓包程序,抓取到的内容,发现没有referer这一项....而用inet控件抓取就有...因为要访问/checkcode.aspx需要referer这个header的参数...或者就不是我第二条说的那样...而是网站自己收到request的时候,判断referer的发送方式?对网络应用还不太了解....如果说的不对别见笑....汗...
      
    *****************************************************************************
    欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码) http://feiyun0112.cnblogs.com/
      

  9.   


    Public Function GetCheckCode()  Dim xmlHttp As Object
      Dim Pic
      Dim PicData As Object  Set xmlHttp = CreateObject("Microsoft.XMLHTTP")
      Set PicData = CreateObject("Adodb.Stream")
      xmlHttp.open "get", "http://www.pceggs.com/VerifyCode_Login.aspx", True
      xmlHttp.setRequestHeader "Accept", "*/*"
      xmlHttp.setRequestHeader "Referer", "http://www.pceggs.com/nologin.aspx"
      xmlHttp.setRequestHeader "Accept-Language", "zh-cn"
      xmlHttp.setRequestHeader "Accept-Encoding", "gzip, deflate"
      xmlHttp.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; InfoPath.1; .NET CLR 2.0.50727)"
      xmlHttp.setRequestHeader "Host", "www.pceggs.com"
      xmlHttp.setRequestHeader "Connection", "Keep-Alive"
      xmlHttp.send
      While xmlHttp.ReadyState <> 4
      DoEvents
      Wend
      Pic = xmlHttp.responseBody
      With PicData
      .Type = 1
      .open
      .write Pic
      .SaveToFile App.Path & "\CheckCode.jpg", 2
      .Cancel
      .Close
      End With
      Set PicData = Nothing
      Set xmlHttp = Nothing
      P1.Picture = LoadPicture(App.Path & "\CheckCode.jpg")
    End Function因为他页面的地址改了。
      

  10.   

    这个需要在http的请求头中添加refer的属性吧应该