如题,地址为:http://www.lyjjzd.com/wfcx.asp,这里面查询时有验证码,在程序中通过httpclient访问这个面页,然后访问页面中的难码,但总是返回空信息,不知道为啥,这种访问访问其它网站的验证码都是正常的,挺让人郁闷的,给瞧瞧如何处理。

解决方案 »

  1.   

    验证码就是图片而已。
    URL找对了就行了。
    这个页面中的验证码需要一个URL参数来决定验证码,不是随机生成的,倒是有点奇怪。
      

  2.   

    呵呵,这个是比较奇怪的,找对了url它也不会显示的,偶奇怪的也是这里,目前反复测试,除了直接在页面里能显示,其它各种方式都不显示,让人不是一般的郁闷。
      

  3.   

    HttpAnalyzerStdV6这个工具你用过就最好(抓网页的)
    你通过
    httpGet= new HttpGet("http://www.lyjjzd.com/wfcx.asp")
    httpGet.setHeader("Referer","页面由来的网页");  //有时候可以没有
    response=httpclient.execute(httpGet);
    String contentString = EntityUtils.toString(response.getEntity());
    System.out.println(contentString); //这里面是你请求网址的所有内容;
    你需要截取contentString的内容取得图片的href="url内容"
    httpGet.abort() 终止httpGet请求
    你再发送请求url内容;
    httpGet= new HttpGet("http://www.lyjjzd.com/"+url内容) 这里面是你请验证码图片的完整url
    File file = new File("C:/Users/guo/workspace/ghn/tesseract/cPic.gif");
    response=httpclient.execute(httpGet);
            InputStream is = response.getEntity().getContent();
            FileOutputStream fos = new FileOutputStream(file);
    int len;
    byte[] b = new byte[buffer];
    while((len=is.read(b,0,1024))!=-1){
    fos.write(b,0,len);
    }
    fos.flush();
    is.close();
    fos.close();
    这样可以保存图片..希望对您有用哦
      

  4.   

    我刚看一下url界面。
    这里面它显示的图片,是根据后面的一个参数确定的。如果你随便给个参数的话,那是显示不了图片的。我想这个随便数跟session相关。因此,你重新发请求,去读取这个图片,由于session变了,肯定读不了图片了。
    因此,在读取图片时,要使用与前一次访问网页地址同样的一个session,否则就取不到图片。并且,访问一次图片变一次,所以不要重复访问(验证码重新生成了)。
      

  5.   

    你这样操作肯定可以:
    1 用浏览器打开网页
    2 浏览页面源码,找到参数,如".24566"之类的
    3 将该参数附缀到URL中,可以直接下载到图片(我验证过)那么你需要在程序中用httpclient模拟这个次序,第一步抓到网页后,从网页中萃取出正确的参数。
      

  6.   

    楼上几位的方法,早都试过了,都搞不定,才来这里开这个帖子的,大家可直接试下,找到url中直接在浏览器中是打不开的。我用java和net都测试过,获取不到图片。
      

  7.   

    程序中保持会话的情况下,先访问页面,然后找到页面中的图片的url,再接着访问图片,也是不成的。 
      

  8.   

    之前遇到的问题是,用URL 类能获得 验证码,但是用httpclient时的 getResponseBodyAsStream 返回的时候,转成imageicon 出不来图片,后来发现,用in.avaiable()返回的是空,看解释说,返回0是正常的,然后直接用ByteArrayInputStream 转了一次再用BufferedImage再转一次,然后new ImageIcon 就出来了,还没研究为什么会这样,之前测试jsp时候没有问题,在asp下有这个问题,郁闷啊