网站建设开票写什么,网站发布与推广怎么写,免费cms内容管理系统,当地建设厅网站关于用Java进行爬虫的资料网上实在少之又少#xff0c;但作为以一名对Java刚刚初窥门径建立好兴趣的学生怎么能静得下心用新学的Python去写#xff0c;毕竟Java是世界上最好的语言嘛 (狗头)关于Java爬虫最受欢迎的一个框架Jsoup常常搭配HttpClient来使用#xff0c;因为Jsou…关于用Java进行爬虫的资料网上实在少之又少但作为以一名对Java刚刚初窥门径建立好兴趣的学生怎么能静得下心用新学的Python去写毕竟Java是世界上最好的语言嘛 (狗头)关于Java爬虫最受欢迎的一个框架Jsoup常常搭配HttpClient来使用因为Jsoup.connect(url)下载网页没有多次重试的功能所以我们更多的使用HttpClient来进行网页的下载而Jsoup则更多的用来解析网页。比较专业的事还得专业的人来干对于下载网页我们没必要每次都花费大把的时间去写直接写一个工具类在Jsoup中直接调用即可关于HttpClient关于HttpClient主要有两个版本org.apache.http.client.HttpClient 3.Xorg.apache.commons.httpClient.HttpClient 4.X相比较4.X的功能更加丰富简洁但3.x也不差下面拿3.x举例HttpClient实例代码package com.Jsoup;import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.params.HttpMethodParams;import java.io.IOException;//下载网页工具,返回html对象
public class HttpUtil {static String fileName null;static String content;/*** 获取网页主体内容完成HttpClient的下载任务剩下的交给Jsoup来解析* param url URL地址* param charset 设置编码格式* return 返回网页 html内容 * throws IOException 抛出IO异常*/public static String getContent(String url,String charset) throws IOException {//1.创建客户端对象并设置参数HttpClient httpClient new HttpClient();//设置 Http 超时httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(2000);//2.生成GetMethod对象并设置参数GetMethod getMethod new GetMethod(url);//设置 Get 请求超时getMethod.getParams().setParameter(HttpMethodParams.SO_TIMEOUT,2000);getMethod.getParams().setContentCharset(charset);//设置请求重试处理-这是使用HttpClient下载网页而不用Jsoup的原因getMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,new DefaultHttpMethodRetryHandler());//设置头信息//getMethod.getParams().setParameter(HttpMethodParams.USER_AGENT,需要添加的代理信息);//3.执行 Get 请求int statusCode httpClient.executeMethod(getMethod);//判断访问的状态码if (statusCode ! HttpStatus.SC_OK){System.err.println(请求失败: getMethod.getStatusLine());fileName null;}else {//4.处理 HTTP 响应内容//获得响应体内容content getMethod.getResponseBodyAsString();}//5.释放连接getMethod.releaseConnection();//输出到控制台//System.out.println(content);return content;}}
注意这里的用户代理User-Agent需要按需求设置后期可能需要设置大量的代理我们将设置一个Use-Agent库每次执行爬虫任务将从中随机选取一个防止被网站封锁Jsoup代码public class JsoupDemo01 {public static void main(String[] args) throws IOException {String url https://xxxx.com;String html HttpUtil.getContent(url,UTF-8);//Jsoup.parse(String html)可以根据html文档来解析Document doc Jsoup.parse(html);//具体解析网页不做展示之后更新}
}