给Jsoup设置代理

本文介绍了如何在Java的Jsoup库中配置代理,以解决内部网络访问限制和防止IP被目标网站封锁的问题。通过Maven或Gradle添加Jsoup依赖后,可以通过调用`proxy()`方法设置基于属性或`Proxy`类的代理,确保网络爬虫的稳定运行。
摘要由CSDN通过智能技术生成

本文介绍如何给Jsoup增加代理,主要有两类原因需要增加代理:

  1. 组织提供代理控制内部访问,如果在本地代理网络中通过Jsoup访问,会抛出异常:java.net.SocketTimeoutException: connect timed out;当见到该异常时,我们需要给Jsoup设置代理,否则不能访问外部网络。

  2. 防止IP被封:另外一种情况是防止网站封锁我们的IP地址。也就是说,使用代理(多个滚动代理)可以更可靠解析HTML,避免因为封锁IP地址让代码停止运行。

增加依赖

Maven依赖:

<dependency>
    <groupId>org.jsoup</groupId>
    <artifactId>jsoup</artifactId>
    <version>1.13.1</version>
</dependency>

Gradle依赖:

compile 'org.jsoup:jsoup:1.13.1'

增加代理

有两种方法给Jsoup增加代理支持。

基于属性增加

给Jsoup增加代理很容易,直接在Connection对象上调用proxy(String, int)方法:

Jsoup.connect("https://spring.io/blog")
  .proxy("127.0.0.1", 1080)
  .get();

第一个参数为主机地址,另一个是端口号。

基于Proxy类增加

我们也可以通过Proxy类实现,在Connection对象上调用它的proxy(java.net.Proxy)方法:

Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("127.0.0.1", 1080));

Jsoup.connect("https://spring.io/blog")
  .proxy(proxy)
  .get();

此方法接受一个Proxy对象,该对象由代理类型(通常为HTTP类型)和InetSocketAddress(封装代理主机名和端口属性的包装类)组成。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值