如何向 Jsoup 添加代理支持?

2022-09-01 00:14:58

我是Java的初学者,我的第一个任务是解析大约10,000个URL并从中提取一些信息,为此我使用Jsoup并且工作正常。

但现在我想为它添加代理支持。代理也有用户名和密码。


答案 1

您可以轻松设置代理

System.setProperty("http.proxyHost", "192.168.5.1");
System.setProperty("http.proxyPort", "1080");
Document doc = Jsoup.connect("www.google.com").get();

答案 2

Jsoup 1.9.1 及更高版本:(推荐的方法)

// Fetch url with proxy
Document doc = Jsoup //
               .connect("http://www.example.com/") //
               .proxy("127.0.0.1", 8080) // sets a HTTP proxy
               .userAgent("Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2") //
               .header("Content-Language", "en-US") //
               .get();

您还可以使用重载 Jsoup#proxy,它采用代理类(见下文)。

在 Jsoup 1.9.1 之前:(详细方法)

// Setup proxy
Proxy proxy = new Proxy(                                      //
        Proxy.Type.HTTP,                                      //
        InetSocketAddress.createUnresolved("127.0.0.1", 8080) //
);

// Fetch url with proxy
Document doc = Jsoup //
               .connect("http://www.example.com/") //
               .proxy(proxy) //
               .userAgent("Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2") //
               .header("Content-Language", "en-US") //
               .get();

引用:


推荐