Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 提取嵌套URL并连接到它们以获取其数据_Java_Spring Boot_Selenium Webdriver_Web Crawler - Fatal编程技术网

Java 提取嵌套URL并连接到它们以获取其数据

Java 提取嵌套URL并连接到它们以获取其数据,java,spring-boot,selenium-webdriver,web-crawler,Java,Spring Boot,Selenium Webdriver,Web Crawler,我正在尝试构建一个读取URL树的服务。我使用了Jsoup,但它只读取根URL。因此,我使用Selenium访问嵌套URL,无法传递登录验证,这是我的服务: 我想知道有没有递归的方法?此消息将显示在控制台中: “只允许本地连接。 请参阅以获取有关确保ChromeDriver安全的建议。” String base64login=新字符串(Base64.encodeBase64(login.getBytes()); 字符串url=internalConstant.getSasdavURL(); Con

我正在尝试构建一个读取URL树的服务。我使用了Jsoup,但它只读取根URL。因此,我使用Selenium访问嵌套URL,无法传递登录验证,这是我的服务: 我想知道有没有递归的方法?此消息将显示在控制台中: “只允许本地连接。 请参阅以获取有关确保ChromeDriver安全的建议。”

String base64login=新字符串(Base64.encodeBase64(login.getBytes());
字符串url=internalConstant.getSasdavURL();
Connection.Response=Jsoup
.connect(url)
.超时(30000)
.method(Connection.method.GET)
.用户代理(
“Mozilla/5.0(Windows NT 10.0;WOW64;rv:41.0)Gecko/20100101 Firefox/41.0”
.header(“授权”、“基本”+base64登录)
.execute();
Document Document=response.parse();//搜索结果
列表文件=document.getElementsByTag(“a”);
字符串href=“”;
字符串版本=null;
字符串versionURL=”https://chromedriver.storage.googleapis.com/LATEST_RELEASE";
字符串html=null;
试一试{
html=Jsoup.connect(versionURL.get().html();
}捕获(IOE1异常){
e1.printStackTrace();
}
Document doc=Jsoup.parseBodyFragment(html);
版本=doc.body().ownText();
ChromeDriverManager.getInstance().version(version.setup();
WebDriver驱动程序=新的ChromeDriver();
用于(元素文件:文件){
href=file.attr(“href”);
如果(!(href.contains(“…”)&(!(href.endsWith(“.org/”))){
logger.info(“第一级文件:”+href);
driver.get(href);
尝试
{
睡眠(3000);
}
捕获(例外e)
{
logger.info(“未能获取URL”+e);
e、 printStackTrace();
}
driver.manage().window().maximize();
列表filesLevel2=driver.findElements(按.tagName(“a”));
字符串hrefLevel2=“”;
WebDriver DriverLevel 2=新的ChromeDriver();
对于(WebElement fileLevel2:fileLevel2){
hrefLevel2=fileLevel2.getAttribute(“href”);
如果(!(href.contains(“…”)&(!(href.endsWith(“.org/”))){
info(“第二级文件:”+hrefLevel2);
driverLevel2.get(hrefLevel2);
尝试
{
睡眠(3000);
}
捕获(例外e)
{
logger.info(“未能获取URL”+e);
e、 printStackTrace();
}
driver.manage().window().maximize();
List filesLevel3=driver.findElements(按.tagName(“a”));
字符串hrefLevel3=“”;
}
}
driverLevel2.close();
}
}           
driver.close();
`   
            String base64login = new String(Base64.encodeBase64(login.getBytes()));
            String url = internalConstant.getSasdavURL();
            Connection.Response response = Jsoup
                    .connect(url)
                    .timeout(30000)
                    .method(Connection.Method.GET)
                    .userAgent(
                            "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:41.0) Gecko/20100101 Firefox/41.0")
                    .header("Authorization", "Basic " + base64login)
           .execute();

            Document document = response.parse(); // search results
            List<Element> files = document.getElementsByTag("a");
            String href ="";
            String version = null;
            String versionURL = "https://chromedriver.storage.googleapis.com/LATEST_RELEASE";
            String html = null;
            try {
                html = Jsoup.connect(versionURL).get().html();
            } catch (IOException e1) {
                e1.printStackTrace();
            }
            Document doc = Jsoup.parseBodyFragment(html);
            version = doc.body().ownText();
            ChromeDriverManager.getInstance().version(version).setup();
            WebDriver driver = new ChromeDriver();
            for(Element file : files) {
                href = file.attr("href");
                if(!(href.contains(".."))&&(!(href.endsWith(".org/")))){
                logger.info("first level file : " + href);
                driver.get(href);
                try
                {
                    Thread.sleep(3000);
                }
                catch(Exception e)
                {
                    logger.info("faild to get the URL" + e);
                    e.printStackTrace();
                }
                                    
             driver.manage().window().maximize();
            List<WebElement> filesLevel2 = driver.findElements(By.tagName("a"));
            String hrefLevel2 = "";
            WebDriver driverLevel2 = new ChromeDriver();
            for(WebElement fileLevel2 : filesLevel2) {
                hrefLevel2 = fileLevel2.getAttribute("href");
                if(!(href.contains(".."))&&(!(href.endsWith(".org/")))) {
                    logger.info("second level file : " + hrefLevel2);
                    driverLevel2.get(hrefLevel2);
                    try
                    {
                        Thread.sleep(3000);
                    }
                    catch(Exception e)
                    {
                        logger.info("faild to get the URL" + e);
                        e.printStackTrace();
                    }
                                        
                 driver.manage().window().maximize();
                 List<WebElement> filesLevel3 = driver.findElements(By.tagName("a"));
                 String hrefLevel3 = "";
                }
                
            }
            driverLevel2.close();
            }
                }           
            driver.close();    
`