专业做家电的网站,广州seo排名优化服务,wordpress不间断音乐,下载别人的wordpress模板2018-01-10#xff1a;fix post 请求数据遗漏部分内容背景#xff1a;最近在写一个小程序#xff0c;发现博主所在的地区访问该网站时有防ddos功能验证导致程序不能正常工作。经过试验发现可以用国外代理ip解决这个问题#xff0c;但是程序走代理访问延迟高且不稳定。思路fix post 请求数据遗漏部分内容背景最近在写一个小程序发现博主所在的地区访问该网站时有防ddos功能验证导致程序不能正常工作。经过试验发现可以用国外代理ip解决这个问题但是程序走代理访问延迟高且不稳定。思路selenium启动浏览器 手动通过网站ddos验证 程序操控其他业务请求问题1.selenium 不支持 post 请求方式2.selenium 不支持自定义 request header环境selenium3.8.1JDK1.8firefox45.9.0esr 下载历史版本https://download-installer.cdn.mozilla.net/pub/firefox/releases/解决方案1.写一个本地页面post请求通过本地页面的ajax请求转发出去ajax也支持自定义request header问题本地页面转发会在request header附带上origin。网站对origin有校验导致访问失败2.selenium 执行 js代码问题只能执行原生js代码参考代码https://stackoverflow.com/questions/11430773/how-to-use-javascript-with-selenium-webdriver-javaWebDriver driver newFirefoxDriver();//打开这个网站防止js跨域请求(用baidu举例)driver.get(https://www.baidu.com);//开启开发者模式方便观察请求Actions builder newActions(driver);builder.sendKeys(Keys.F12).perform();JavascriptExecutor jse(JavascriptExecutor) driver ;try{String resp(String) jse.executeScript(var xmlhttpnew XMLHttpRequest();\n xmlhttp.open(\GET\,\https://www.baidu.com\,false);\n xmlHttp.setRequestHeader(\Content-type\,\application/x-www-form-urlencoded\);\n //表单提交的头部信息xmlhttp.setRequestHeader(\testHeader\,\123456\);\n //自定义请求头xmlhttp.send(\nametestsex1age18\);\n //表单数据return xmlhttp.responseText;);System.out.println(resp);}catch(Exception e) {//.......... Exception}以上抛砖引玉。如有更好的解决方案请留言讨论谢谢