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