2 hly txi hly_txi 于 2016.04.21 12:40 提问

请问关于java 通过http client抓取网页信息返回:请开启JavaScript并刷新该页

初学httpClient,想去抓取某个网页查询出来的结果信息,通过浏览器监控发现response出来的信息和java控制台打印出来的不一样。

 package com.test;

import java.io.IOException;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.ResponseHandler;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;

public class Test2 {

    public static void main(String[] args) {
        try {
            CloseableHttpClient httpclient = HttpClients.createDefault();
            ResponseHandler<String> responseHandler = new ResponseHandler<String>() {
                public String handleResponse(final HttpResponse response)
                        throws ClientProtocolException, IOException {
                    int status = response.getStatusLine().getStatusCode();
                    if (status >= 200 && status < 300) {
                        HttpEntity entity = response.getEntity();
                        return entity != null ? EntityUtils.toString(entity,
                                "utf-8") : null;
                    } else {
                        throw new ClientProtocolException(
                                "Unexpected response status: " + status);
                    }
                }
            };
            HttpGet httpGet = new HttpGet("http://zhixing.court.gov.cn/search");
            String strResult = httpclient.execute(httpGet, responseHandler);
            System.out.println(strResult);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

}

控制台打印图片说明

6个回答

caozhy
caozhy   Ds   Rxr 2016.04.22 05:52

看你传的useragent是什么,最好和你的浏览器的一致,应该是服务器端有判断ua。

hly_txi
hly_txi 这个问题已经找到了,是因为没有设置cookie,我把浏览器的cookie字符串复制设置到Header就可以了。现在又出现另一个问题,就是怎么生成新的cookie呢?
一年多之前 回复
hly_txi
hly_txi 这个问题已经找到了,是因为没有设置cookie,我把浏览器的cookie字符串复制设置到Header就可以了。现在又出现另一个问题,就是怎么生成新的cookie呢?
一年多之前 回复
u011639256
u011639256   2016.04.25 11:00

您好,我现在也正在爬取这个网站,请问你解决问题了吗?

u011639256
u011639256 你好,我通过获取cookie已经解决这个问题:)。
一年多之前 回复
u011639256
u011639256   2016.04.25 11:08

你好,我通过获取cookie已经解决这个问题:)。

u011639256
u011639256 回复hly_txi: 直接去爬百度的失信接口吧,方便得多。cookie的话我用python cookieJar()直接获取的。
一年多之前 回复
hly_txi
hly_txi 兄弟,能提供一下你获取cookie的代码给我参考一下吗?
一年多之前 回复
hly_txi
hly_txi 还没有,你有什么好的思路吗?
一年多之前 回复
nameok1
nameok1   2016.05.05 22:43

楼主解决这个问题了嘛?我知道大概是因为cookies,不过我不清楚该怎么做。

nameok1
nameok1   2016.05.05 22:44

楼主解决这个问题了嘛?我知道大概是因为cookies,不过我不清楚该怎么做。

nameok1
nameok1   2016.05.06 08:33

楼主解决这个问题了嘛?我知道大概是因为cookies,不过我不清楚该怎么做。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!