代理ip选择
本篇使用的代理选择了青果网络的,原因是他们家有2个小时的免费测试账号。本篇使用的是隧道代理,没有添加白名单,而是使用的账号密码方式。
代理准备
需要新建两个文件。
background.js
内容如下(username和password需要替换为自己代理ip的账号密码)
function callbackFn(details) {
return {
authCredentials: {
username: "7D36CA86",
password: "5199C38DCD34"
}
};
}
chrome.webRequest.onAuthRequired.addListener(
callbackFn,
{urls: ["<all_urls>"]},
['blocking']
);
manifest.json
内容如下
{
"manifest_version": 2,
"name": "Authentication for ...",
"version": "1.0.0",
"permissions": ["<all_urls>", "webRequest", "webRequestBlocking"],
"background": {
"scripts": ["background.js"]
}
}
proxy.zip
将上面两个文件放到一起,然后压缩为proxy.zip。不是创建个文件夹然后压缩,而是压缩文件的根目录就只有上面两个文件,没有文件夹。
将proxy.zip文件放到任意目录,后续代码中使用。
Java设置代理方式
proxyadd为代理ip的账号和密码,本篇使用的隧道代理,故而是固定的。
addExtensions中添加的就是上面已经压缩好的proxy.zip
String proxyadd = "tunnel.qg.net:19796";
Proxy proxy = new Proxy();
proxy.setHttpProxy(proxyadd);
proxy.setSslProxy(proxyadd);
option.setCapability("proxy", proxy);
option.addExtensions(new File("/Users/admin/Documents/workspace/kjm_yeegu_ctrip/proxy.zip"));
完整测试代码
public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver", "/Users/admin/Documents/workspace/chromedriver");
ChromeOptions option = new ChromeOptions();
option.addArguments("disable-infobars");
List<Object> list = new ArrayList<>();
list.add("enable-automation");
option.setExperimentalOption("excludeSwitches", list);
option.addArguments("--disable-blink-features", "--disable-blink-features=AutomationControlled");
String proxyadd = "tunnel.qg.net:19796";
Proxy proxy = new Proxy();
proxy.setHttpProxy(proxyadd);
proxy.setSslProxy(proxyadd);
option.setCapability("proxy", proxy);
option.addExtensions(new File("/Users/admin/Documents/workspace/kjm_yeegu_ctrip/proxy.zip"));
// String url = "https://www.ip138.com/";
String url = "https://m.flight.qunar.com/ncs/page/flightlist?depCity=%E4%B8%8A%E6%B5%B7&arrCity=%E5%8C%97%E4%BA%AC&goDate=2022-01-01&from=touch_index_search&child=0&baby=0&cabinType=0";
WebDriver webDriver = new ChromeDriver(option);
webDriver.get(url);
List<WebElement> resultElements = webDriver.findElements(By.className("list-content")).get(0).findElements(By.tagName("li"));
for (int i = 0; i < resultElements.size(); i++) {
System.out.println((i+1) + "\n" + resultElements.get(i).getText());
System.out.println();
}
webDriver.quit();
}
输入结果
仅供参考,随时有可能变化。
Starting ChromeDriver 96.0.4664.45 (76e4c1bb2ab4671b8beba3444e61c0f17584b2fc-refs/branch-heads/4664@{#947}) on port 6997
Only local connections are allowed.
Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe.
ChromeDriver was started successfully.
十二月 05, 2021 4:41:08 下午 org.openqa.selenium.remote.ProtocolHandshake createSession
信息: Detected dialect: W3C
1
06:40
浦东T2
2时30分
09:10
首都T2
海航HU7614 波音738(中)
355
惠选经济舱2折
2
20:55
虹桥T2
2时20分
23:15
首都T2
海航HU7602 空客330(大)
430
惠选经济舱2.5折
3
09:00
浦东T2
2时25分
11:25
大兴
国航CA8679 空客321(中)
439
经济舱2.5折
4
16:45
浦东T2
2时30分
19:15
大兴
国航CA8685 空客321(中)
439
经济舱2.5折
5
20:30
浦东T2
2时30分
23:00
大兴
厦航MF8556 波音787(大)
443
经济舱3折
6
09:05
浦东T1
2时20分
11:25
大兴
东航MU5129 空客320(中)
448
经济舱2.6折
7
14:10
浦东T1
2时35分
16:45
大兴
东航MU5195 空客320(中)
448
经济舱2.6折
8
15:40
浦东T1
2时20分
18:00
大兴
东航MU5137 空客320(中)
448
经济舱2.6折
9
20:25
虹桥T2
2时35分
23:00
大兴
上航FM9101 波音738(中)
448
经济舱3.1折
10
21:10
浦东T1
2时35分
23:45
大兴
东航MU5186 空客320(中)
448
经济舱2.6折
11
10:45
虹桥T2
2时10分
12:55
首都T2
海航HU7606 波音787(大)
450
惠选经济舱2.6折
12
11:35
虹桥T2
2时10分
13:45
首都T2
海航HU7608 空客330(大)
450
惠选经济舱2.6折
13
19:25
虹桥T2
2时30分
21:55
首都T2
海航HU7610 空客330(大)
450
惠选经济舱2.6折
14
19:45
虹桥T2
2时15分
22:00
大兴
南航CZ8886 空客350(大)
470
经济舱3.2折
15
07:45
虹桥T2
2时35分
10:20
首都T3
国航CA1858 波音787(大)
488
经济舱2.8折
16
08:55
虹桥T2
2时35分
11:30
首都T3
国航CA1590 空客350(大)
488
经济舱2.8折
17
11:30
虹桥T2
2时35分
14:05
首都T3
国航CA1832 空客350(大)
488
经济舱2.8折
18
12:30
虹桥T2
2时35分
15:05
首都T3
国航CA1502 波音777(大)
488
经济舱2.8折
19
13:25
虹桥T2
2时35分
16:00
首都T3
国航CA1520 空客330(大)
488
经济舱2.8折
20
13:45
虹桥T2
2时35分
16:20
首都T3
国航CA1548 波音737(中)
488
经济舱2.8折
21
14:15
虹桥T2
2时35分
16:50
首都T3
国航CA1532 波音787(大)
488
经济舱2.8折
22
14:45
虹桥T2
2时35分
17:20
首都T3
国航CA1862 空客330(大)
488
经济舱2.8折
23
16:30
虹桥T2
2时35分
19:05
首都T3
国航CA1558 波音747(大)
488
经济舱2.8折
24
17:30
虹桥T2
2时25分
19:55
首都T3
国航CA1518 空客330(大)
488
经济舱2.8折
25
18:25
虹桥T2
2时35分
21:00
首都T3
国航CA1522 波音777(大)
488
经济舱2.8折