Java开发
Jsoup的使用教程(4)-代理服务器的使用
2025-01-22 27 0
简介 Jsoup的使用教程-代理服务器的使用
代理服务器的使用
在一般情况下,使用浏览器可以直接连接 Internet 站点获取网络信息,而代理服 务器(Proxy Server)是网络上提供转接功能的服务器。代理服务器是介于客户端和 Web 服务器之间的另一台服务器,基于代理服务器,浏览器不再直接从 Web 服务器 获取数据,而是向代理服务器发出请求,信号会先送发到代理服务器,由代理服务器 取回浏览器所需要的信息。可以将代理简单理解为中介。
在网络爬虫中,使用代理服务器访问网页内容,能够高度隐藏爬虫的真实 IP 地址, 从而防止网络爬虫被服务器封锁。另外,普通网络爬虫使用固定 IP 地址请求时,往往 需要设置随机休息时间,而通过代理服务器却不需要,从而提高了数据采集的效率。 目前,代理服务器可以来源于提供免费代理服务的一些网站或接口网站,但这些免 费代理 IP 地址的稳定性较差。另外,也可通过付费的方式获取商业级代理,其提供 的代理 IP 地址可用率较高,稳定性较强。
在 Jsoup 中,提供了两种方式设置代理服务器,如下所示。
Connection proxy(Proxy proxy);
Connection proxy(String host, int port);
在设置代理服务器时,需要知道代理服务器的 IP 地址以及端 口。在本案例中,只使用了一个代理服务器请求网页,代理服务器的 IP 地址为
“171.221.239.11”,端口为 808。在实际应用中,往往需要构建代理服务器库,不断 地切换代理服务器去请求 URL 库
public class JsoupConnectProxy1 {
public static void main(String[] args) throws IOException {
//使用第一种方式设置代理
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("171.221.239.11", 808));
Connection connection = Jsoup.connect("http://www.********.com.cn/b.asp")
.proxy(proxy);
Connection.Response response = connection.method(Connection.Method.GET)
.timeout(10*1000).execute();
//获取响应状态码
int statusCode = response.statusCode();
System.out.println("响应状态码为:" + statusCode);
}
}
public class JsoupConnectProxy2 {
public static void main(String[] args) throws IOException {
//使用第二种方式设置代理
Connection connection = Jsoup.connect("http://www.********.com.cn/b.asp")
.proxy("171.221.239.11",808);
Connection.Response response = connection.method(Connection.Method.GET)
.timeout (10*1000).execute();
//获取响应状态码
int statusCode = response.statusCode();
System.out.println("响应状态码为:" + statusCode);
}
}