香雨站

用户名  找回密码
 立即注册
帖子
热搜: 活动 交友 discuz
查看: 114|回复: 0

如何利用Java使用jsoup连接爬虫IP?

[复制链接]

1

主题

2

帖子

3

积分

新手上路

Rank: 1

积分
3
发表于 2022-9-22 16:51:33 | 显示全部楼层 |阅读模式
此示例Java使用jsoup并通过代理进行请求发送。
下面的代码需要用到jar包:org.jsoup.Jsoup
此代码以http代理为例
import java.io.IOException;

import java.net.Authenticator;

import java.net.InetSocketAddress;

import java.net.PasswordAuthentication;

import java.net.Proxy;

import org.jsoup.Jsoup;

import org.jsoup.nodes.Document;

/**** 通过代理访问指定URL 内容
* 此处 Jsoup Version 1.9.1
* JDK 8u111版本后环境下:要访问的目标页面为HTTPS协议时,需修改“jdk.http.auth.tunneling.disabledSchemes”值
*/

public class ProxyDemo

{

// 账密验证信息

final static String ProxyUser = "key";

final static String ProxyPass = "proxy_password";

// 代理服务器

final static String ProxyHost = "";

final static Integer ProxyPort = 9020;

public static String getUrlProxyContent(String url)

{

Authenticator.setDefault(new Authenticator() {

public PasswordAuthentication getPasswordAuthentication()

{

return new PasswordAuthentication(ProxyUser, ProxyPass.toCharArray());

}

});



Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(ProxyHost, ProxyPort));



try

{

// 此处自己处理异常、其他参数等

Document doc = Jsoup.connect(url)

.followRedirects(false)

.timeout(3000)

.proxy(proxy)

// 忽略证书校验

.validateTLSCertificates(false)

.get()

;

if(doc != null) {

System.out.println(doc.body().html());

}

}

catch (IOException e)

{

e.printStackTrace();

}

return null;

}

public static void main(String[] args) throws Exception

{

// 要访问的目标页面

String targetUrl = "http://httpbin.org/get";

// JDK 8u111版本后,目标页面为HTTPS协议,启用proxy用户密码鉴权

System.setProperty("jdk.http.auth.tunneling.disabledSchemes", "");
getUrlProxyContent(targetUrl);
}
}
回复

举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|香雨站

GMT+8, 2025-3-16 06:42 , Processed in 0.768007 second(s), 59 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.. 技术支持 by 巅峰设计

快速回复 返回顶部 返回列表