通過httpClient動態爬取百度首頁---只是爲了學習無惡意行爲

httpClient介紹

HttpClient 是Apache Jakarta Common 下的子項目,可以用來提供高效的、最新的、功能豐富的支持 HTTP 協議的客戶端編程工具包,並且它支持 HTTP 協議最新的版本和建議。

HTTP 協議可能是現在 Internet 上使用得最多、最重要的協議了,越來越多的 Java 應用程序需要直接通過 HTTP 協議來訪問網絡資源。雖然在 JDK 的 java net包中已經提供了訪問 HTTP 協議的基本功能,但是對於大部分應用程序來說,JDK 庫本身提供的功能還不夠豐富和靈活。HttpClient 是 Apache Jakarta Common 下的子項目,用來提供高效的、最新的、功能豐富的支持 HTTP 協議的客戶端編程工具包,並且它支持 HTTP 協議最新的版本和建議。HttpClient 已經應用在很多的項目中,比如 Apache Jakarta 上很著名的另外兩個開源項目 Cactus 和 HTMLUnit 都使用了 HttpClient。現在HttpClient最新版本爲 HttpClient 4.5 .6(2015-09-11)

導入特有jar包

        <!--添加httpClient jar包 -->
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
        </dependency>

httpClient測試

public class TestHttpClient {
    
    /**
     * 1.實例化httpClient對象
     * 2.確定請求url地址
     * 3.定義請求方式類型  get post put delete
     * 4.利用api發起http請求,獲取響應結果
     * 5.判斷返回值是否正確   校驗狀態碼.
     * 6.如果返回值狀態碼正確的(200),則動態獲取返回值信息
     */
    @Test
    public void test() {
        HttpClient httpClient = HttpClients.createDefault();
        String url = "https://www.baidu.com";
        HttpGet httpGet = new HttpGet(url);
        try {
            //發起請求,獲取響應  200
            HttpResponse httpResponse = httpClient.execute(httpGet);
            int code = httpResponse.getStatusLine().getStatusCode();
            String reason = httpResponse.getStatusLine().getReasonPhrase();
            System.out.println("獲取返回值信息:"+code+":"+reason);
            
            if(code==200) {
                //表示用戶的請求正確 獲取響應的實體
                HttpEntity httpEntity = httpResponse.getEntity();
                //將實體信息.轉化爲String類型,進行展現,防止亂碼 
                String result = EntityUtils.toString(httpEntity,"utf-8");
                System.out.println(result);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

在這裏插入圖片描述

新建一個.txt文件,將其複製粘貼保存,再更改爲.html文件,點擊查看(所有的按鈕都是有效的)

在這裏插入圖片描述

圖片可以自行配置

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章