0 0

HttpUrlConnection抓取第三方网页,需要输入验证码后,再提交查询,但提交查询没通过.15

我是通过下面方法取得对方网页的内容的,然后将html源码传给本项目的JSP页面。
public static String getContentByUrl( String urlString, HttpServletRequest req ) throws IoException{
        URL url = new URL(urlString);
        HttpUrlConnection conn = (HttpUrlConnection)url.openConnection();
        conn.setRequestMethod('POST');
conn.setDoInput(true);
conn.setDoOutput(true);
InputStream inputStream = conn.getInputStream();
String htmlstring = new String(ReadInputStreamInput(inputStream),"UTF-8");
return htmlstring;
      }

验证码是通过下面方法请求以对方网站,然后输出到本项目的JSP页面的。
@RequestMapping(value="getValidateCode", method=RequestMethod.GET)     
public String getValidateCode( HttpServletRequest req, HttpServletResponse resq ) throws IoException{
String addr = "http://210.76.16.37/sfzb/genRandom.do";
        URL url = new URL(urlString);
        HttpUrlConnection conn = (HttpUrlConnection)url.openConnection();
        conn.setRequestMethod('GET');
conn.setDoInput(true);
conn.setDoOutput(true);
InputStream inputStream = conn.getInputStream();
byte[] bytes =  ReadInputStreamInput(inputStream);
OutPutStream outs =resp.getOutPutStream();
outs.flush();
return null
      }

通过上面方法成功实现了取得对方网页与验证码图片显示,
当用户输入完验证码后点击查询,组成完整的请求地址:http://210.76.16.37/sfzb/queryData.do?random=7845,
再次调用getContentByUrl方法,有信息返回, 但是没有返回正确的结果。
我想原因是验证码问题,是不是取得验证码与提交验证码需要在同一个Session或Cookie之类的,这方面我是不太懂,
应该怎样写呢?请指点.

 

2012年8月02日 10:06

2个答案 按时间排序 按投票排序

0 0

应该在同一个Session中,因为验证码在服务器生成,然后由客户端提交验证码与服务器上的验证码进行匹配,因此一个回话对应一个验证码

2012年8月05日 11:22
0 0

最好是能够在同一个请求或者是SESSION里吧,你能否把获取验证码图片的REQUEST或者SESSION保存下来,并传给getContentByUrl。试试吧!

2012年8月02日 10:28

相关推荐

    批量抓取网站验证码

    获取到验证码图片URL后,可以使用Java的`HttpURLConnection`或第三方库如Apache HttpClient来下载图片。下载的图片可能需要预处理,例如调整大小、灰度化或二值化,以提高OCR识别的准确性。Java的`BufferedImage`类...

    java实现WebSpider蓝蜘蛛网页抓取.zip

    - **验证码识别**:对于有验证码的网站,可能需要用到OCR技术或第三方服务来解决。 - **数据清洗与分析**:抓取到的数据可能需要进一步清洗和预处理,以便后续的分析或机器学习应用。 由于没有提供具体的源码,以上...

    模拟登录验证码

    复杂图像验证码则可能需要借助OCR(光学字符识别)技术或者第三方验证码识别服务。 在获取网站内容时,我们首先需要通过HTTP库(如Python的requests或Java的HttpURLConnection)发送GET请求获取网页源代码。然后,...

    java web网站常用抓取其他网站内容

    1. **HTTP请求**:在Java中,我们通常使用`HttpURLConnection`或第三方库如Apache HttpClient、OkHttp来发送HTTP请求。通过设置URL、请求方法(GET或POST)、Header参数等,可以定制化请求行为。 2. **HTML解析**:...

    java 模拟登录(含验证码)

    1. **构建HTTP请求**:使用像`HttpURLConnection`或者第三方库如`Apache HttpClient`或`OkHttp`,创建一个指向登录页面的POST请求。你需要设置请求头,比如`Content-Type`通常设为`application/x-...

    Android(Java) 模拟登录知乎并抓取用户信息

    通过`HttpURLConnection`或第三方库如`OkHttp`发送POST请求,带上必要的Cookie信息,以模拟浏览器的行为。 对于知乎的登录,还需要注意处理验证码。如果知乎需要验证码,我们需要能解析并显示验证码图片,并提供...

    ifeng新闻抓取

    开发者可以使用Java的HttpURLConnection或第三方库如Apache HttpClient来发送HTTP请求,获取网页内容。 2. **网页抓取原理**:网页抓取通常通过解析HTML或XML文档来提取所需信息。Java中可以使用Jsoup库来解析网页...

    企查查信息爬取代码.7z

    - **HTTP请求**:Java的HttpURLConnection或者第三方库如Apache HttpClient或OkHttp用于发送HTTP请求到目标网站获取页面内容。 - **数据存储**:抓取的数据通常会被存储到文件、数据库或其他持久化存储中。在Java中...

    java源码:Java网页爬虫 JSpider.zip

    1. **网络请求库的使用**:如使用`HttpURLConnection`、`HttpClient`或者第三方库如`OkHttp`来发送GET和POST请求获取网页内容。 2. **HTML解析**:使用如Jsoup等库解析HTML,提取所需的数据。 3. **线程与并发控制**...

    爬虫通过增值税发票验真平台实现发票验真

    2. **请求构造**:使用Java的HttpURLConnection或第三方库如Apache HttpClient、OkHttp,构造POST请求,将发票信息作为请求参数发送到验真平台。 3. **数据填充**:根据页面分析的结果,使用Java的String或...

    抓取爬虫软件

    此外,第三方库如Apache HttpClient和OkHttp提供了更高级的功能,如连接池、超时控制和重试策略。 3. **HTML解析**:为了提取网页中的数据,我们需要解析HTML内容。Jsoup是一个流行的Java库,它提供了简单易用的API...

    java 简单实现 抓取酷讯网的机票数据

    - 可以使用Java内置的`HttpURLConnection`类,或者第三方库如Apache HttpClient或OkHttp来发送HTTP请求并处理响应。 4. **HTML解析**: - 要从HTML源代码中提取机票数据,需要解析HTML结构。可以使用Jsoup库,它...

    网页爬取爬虫

    通过HttpURLConnection或者第三方库如Apache HttpClient,我们可以向服务器发送GET或POST请求来获取网页内容。GET请求常用于获取静态页面,而POST请求则适用于需要提交表单数据的交互式网页。 接着,进入解析阶段。...

    铁路站点查询

    在Java中,可以使用HttpURLConnection或者第三方库如Apache HttpClient、OkHttp来实现网络请求。一旦获取到网页内容,接下来就需要解析这些内容以提取所需的数据。这个过程通常涉及到HTML解析,可以使用Jsoup库,它...

    java爬取携程酒店评价信息

    对于验证码,可以使用OCR技术或第三方服务进行识别;对于IP限制,可以通过代理IP池来更换IP;User-Agent则需要定期更新,模拟多种浏览器类型。 5. **数据存储**:抓取到的评价信息需要存储起来,以便后续分析。可以...

    基于JAVA解决淘宝爬虫限制.rar

    另外,验证码和动态加载的页面可能需要配合使用第三方库,例如Tesseract用于OCR识别,Jsoup或JsEvaluator用于解析JavaScript生成的内容。同时,对于JSON或XML格式的数据,Jackson或JAXB等库可以帮助我们进行解析。 ...

    [搜索链接]Java网络爬虫(蜘蛛)源码_zhizhu.zip

    Java中的`java.net.HttpURLConnection`或第三方库如Apache HttpClient可以方便地处理HTTP请求。 2. **HTML解析**:抓取到的HTML页面需要被解析,以便提取有用的信息。Java提供了Jsoup库,它简化了HTML解析过程,...

    (Java)网络爬虫 by 夜猫.zip

    Java的HttpURLConnection或者第三方库如Apache HttpClient可以实现这个功能。 2. 解析HTML响应:收到服务器返回的HTML响应后,使用Jsoup解析HTML,构建DOM树。 3. 提取数据:根据需求,使用Jsoup的API选择和提取...

    java——spider

    Java中的`HttpURLConnection`或第三方库如Apache HttpClient和OkHttp可以用来发送HTTP请求。 2. **HTML解析**:网络爬虫需要解析HTML文档来获取所需的数据。可以使用Java内置的`javax.xml.parsers....

Global site tag (gtag.js) - Google Analytics