Java——Jsoup方式的IP代理服务器的使用
生活随笔
收集整理的這篇文章主要介紹了
Java——Jsoup方式的IP代理服务器的使用
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
代理服務(wù)器的基本了解
在一般情況下,使用瀏覽器可以直接連接internet站點(diǎn)獲取網(wǎng)絡(luò)信息,而代理服務(wù)器(Proxy Server)是網(wǎng)絡(luò)上提供轉(zhuǎn)接功能的服務(wù)器。代理服務(wù)器是介于客戶端和Web服務(wù)器之間至的另一臺(tái)服務(wù)器。基于代理服務(wù)器,瀏覽器不再直接從Web服務(wù)器獲取數(shù)據(jù),而是向代理服務(wù)器發(fā)出情求,信號(hào)會(huì)先送發(fā)到代理服務(wù)器,由代理服務(wù)器取回瀏覽器所需要的信息。可以將代理簡(jiǎn)單理解為中介.在網(wǎng)絡(luò)爬蟲中,使用代理服務(wù)器訪問網(wǎng)頁內(nèi)容;能高度隱藏爬蟲真實(shí)IP地址,從而防止網(wǎng)絡(luò)爬蟲被服務(wù)器封鎖。另外,普通網(wǎng)絡(luò)爬蟲使用固定IР地址請(qǐng)求時(shí)往往需要沒置隨機(jī)休息時(shí)間,而通過代理聯(lián)務(wù)器卻不需要,從而提高了數(shù)據(jù)采集的效率。三前,代理股務(wù)器可以來源于提供免費(fèi)代理服務(wù)的一些網(wǎng)站或接口網(wǎng)站,但這些免費(fèi)代理IP地址的穩(wěn)定性較差,另外,也可通過付費(fèi)的方式獲取商業(yè)級(jí)代理,其提供的代理IP地址可用率較高,穩(wěn)定性較強(qiáng)。記得設(shè)置這兩個(gè)地方
本代碼使用有局限性:
局限性為:授權(quán)模式 要使用 終端IP授權(quán)然后生成提取鏈接頁面 返回類型設(shè)置必須使用Text文本形式的返回類型 import net.sf.json.JSONObject; import org.jsoup.Connection; import org.jsoup.Jsoup; import org.jsoup.nodes.Document;import java.io.IOException; import java.lang.reflect.Array; import java.net.InetSocketAddress; import java.net.Proxy; import java.util.*;public class Jsoupdemo6 {//生成的ip提取鏈接,記得換成自己的private final static String GET_IP_URL = "http://www.zdopen.com/PrivateProxy/GetIP/?api=202207061724038356&akey=3d6e457db3f4b25c&count=5&adr=%E6%B5%99%E6%B1%9F%2C%E6%B2%B3%E5%8D%97%2C%E5%8C%97%E4%BA%AC&fitter=2×pan=6&type=1";public static void main(String[] args) {Document doc = null;try {doc = Jsoup.connect(GET_IP_URL).get();} catch (IOException e) {throw new RuntimeException(e);}String text = doc.text();// System.out.println(text);String[] s = text.split(" ");String[] arrip=new String[s.length];String[] arrport=new String[s.length];for (int i=0;i<s.length;i++) {String s1 = s[i];arrip[i]= s1.split(":")[0];arrport[i]=s1.split(":")[1];}Map<String, String> ipmap = new HashMap<>();Map<String, String> portmap = new HashMap<>();for (int i = 0; i < arrip.length; i++) {ipmap.put("ip"+i,arrip[i]);portmap.put("port"+i,arrport[i]);}/** 便捷輸出查看** */// for (int i = 0; i < portmap.size(); i++) {// System.out.println(portmap.get("port"+i));// }for (int i = 0; i < ipmap.size(); i++) {// System.out.println(ipmap.get("ip"+i));// System.out.println(portmap.get("port"+i));String ip =ipmap.get("ip"+i);String port=portmap.get("port"+i) ;// System.out.println(ip+" "+port);checkIp a = new checkIp(ip, Integer.valueOf(port));try {a.lianjie();} catch (IOException e) {throw new RuntimeException(e);}}}static class checkIp{private String ip ;private int port;public checkIp(String ip, int port) {this.ip = ip;this.port = port;}public void lianjie() throws IOException {//要請(qǐng)求的網(wǎng)址,記得換成自己的Connection connection= Jsoup.connect("https://www.baidu.com");/** 這個(gè)地方的proxy 參數(shù)第一個(gè)是String 類型 用于傳入 代理Ip地址 第二個(gè)參數(shù)是int類型用于傳入 Ip端口號(hào)* */Connection.Response execute = connection.method(Connection.Method.GET).timeout(20*1000).proxy(ip, port).execute();int i = execute.statusCode();System.out.println("響應(yīng)狀態(tài)碼為:"+i);}} }我自己使用的代理ip是 zhandaye 拼音自己猜一下
返回類型是Json方式 ,授權(quán)方式為賬號(hào)密碼的寫法鏈接:博客鏈接跳轉(zhuǎn)
總結(jié)
以上是生活随笔為你收集整理的Java——Jsoup方式的IP代理服务器的使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 向量点乘相关公式推导及 几何解释
- 下一篇: java二分排序法原理_Java常见排序