Java爬虫---httpClient连接

一,简介

通常静态网页时,我只用jsoup.jar包进行爬虫,简单可以获取网页的所有信息

/**
	 * 根据url获取Document对象
	 * @param url 小说章节url
	 * @return Document对象
	 */
	public static Document getDocument(String url){
		Document doc = null;
		try {
			doc = Jsoup.connect(url).timeout(5000).get();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return doc;
	}

二,特殊情况

有一些网页在获取信息时,使用Jsoup.jar爬虫,获取信息不完整,

那么现在只能使用apache的包,这样就可以获取到cookie和设置相应的cookie

还有设置访问的模式(例如我想使用的是手机的访问模式)

网页:"https://m.kayege.com/book/52194/504.html"(这个手机获取和pc端获取就不一样了)

设置:setHeader(...) -------------设置头部获取情况

可以查看Chorme中的network

如图

Java爬虫---httpClient连接

代码

import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
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 Test1 {

	public static void main(String[] args) {
			try {
				CloseableHttpClient httpClient=HttpClients.createDefault(); // 创建httpClient实例
		        HttpGet httpGet=new HttpGet("https://m.kayege.com/book/52194/504.html"); // 创建httpget实例
		        httpGet.setHeader("user-agent", "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Mobile Safari/537.36"); // 设置请求头消息User-Agent
		        CloseableHttpResponse response=httpClient.execute(httpGet); // 执行http get请求
		        HttpEntity entity=response.getEntity(); // 获取返回实体
		        System.out.println("网页内容:"+EntityUtils.toString(entity, "utf-8")); // 获取网页内容
		        response.close(); // response关闭
		        httpClient.close(); // httpClient关闭
			}catch (Exception e) {
				e.printStackTrace();
			}
		 	

	}

}

所用的包

Java爬虫---httpClient连接