Update proxy
This commit is contained in:
parent
8d4920159a
commit
78e08fbc03
|
|
@ -42,6 +42,7 @@ public class Init {
|
||||||
public static void init(Context context) {
|
public static void init(Context context) {
|
||||||
get().app = ((Application) context);
|
get().app = ((Application) context);
|
||||||
SpiderDebug.log("自定義爬蟲代碼載入成功!");
|
SpiderDebug.log("自定義爬蟲代碼載入成功!");
|
||||||
|
Proxy.init();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void execute(Runnable runnable) {
|
public static void execute(Runnable runnable) {
|
||||||
|
|
|
||||||
|
|
@ -1,15 +1,16 @@
|
||||||
package com.github.catvod.spider;
|
package com.github.catvod.spider;
|
||||||
|
|
||||||
import com.github.catvod.crawler.Spider;
|
|
||||||
import com.github.catvod.crawler.SpiderDebug;
|
import com.github.catvod.crawler.SpiderDebug;
|
||||||
import com.github.catvod.net.OkHttp;
|
import com.github.catvod.net.OkHttp;
|
||||||
|
|
||||||
import java.io.ByteArrayInputStream;
|
import java.io.ByteArrayInputStream;
|
||||||
|
import java.lang.reflect.Method;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
public class Proxy extends Spider {
|
public class Proxy {
|
||||||
|
|
||||||
private static int port = -1;
|
private static Method method;
|
||||||
|
private static int port;
|
||||||
|
|
||||||
public static Object[] proxy(Map<String, String> params) throws Exception {
|
public static Object[] proxy(Map<String, String> params) throws Exception {
|
||||||
switch (params.get("do")) {
|
switch (params.get("do")) {
|
||||||
|
|
@ -26,27 +27,34 @@ public class Proxy extends Spider {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void adjustPort() {
|
public static void init() {
|
||||||
if (Proxy.port > 0) return;
|
try {
|
||||||
int port = 9978;
|
method = Class.forName("com.github.catvod.Proxy").getMethod("getUrl", boolean.class);
|
||||||
while (port < 10000) {
|
} catch (Throwable e) {
|
||||||
String resp = OkHttp.string("http://127.0.0.1:" + port + "/proxy?do=ck", null);
|
findPort();
|
||||||
if (resp.equals("ok")) {
|
|
||||||
SpiderDebug.log("Found local server port " + port);
|
|
||||||
Proxy.port = port;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
port++;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static int getPort() {
|
public static String getUrl(boolean local) {
|
||||||
adjustPort();
|
try {
|
||||||
return port;
|
return (String) method.invoke(null, local);
|
||||||
}
|
} catch (Throwable e) {
|
||||||
|
|
||||||
public static String getUrl() {
|
|
||||||
adjustPort();
|
|
||||||
return "http://127.0.0.1:" + port + "/proxy";
|
return "http://127.0.0.1:" + port + "/proxy";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static String getUrl() {
|
||||||
|
return getUrl(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void findPort() {
|
||||||
|
if (port > 0) return;
|
||||||
|
for (int p = 8964; p < 9999; p++) {
|
||||||
|
if ("ok".equals(OkHttp.string("http://127.0.0.1:" + p + "/proxy?do=ck", null))) {
|
||||||
|
SpiderDebug.log("本地代理端口:" + p);
|
||||||
|
port = p;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -1 +1 @@
|
||||||
fd389e3446f23e76f9112a2097d81884
|
7d41e83085218476c2cd4fc00da14ad8
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue