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);
    }
}


点赞 0

我的名片

网名:梦宇信息技术

职业:软件开发、Mes系统工程师

现居:福建省-福州市

QQ:703159

站点信息

  • 联系QQ:703159
  • 文章统计97篇文章
  • 标签总数6
  • 加我微信:扫码,加我微信