下面的Selenium代碼幫助我獲取我參與的組列表。如果您不想在屏幕上看到自動化(無頭),您可以考慮使用HTMLUnitDriver
。
WebDriver driver = new FirefoxDriver();
driver.get("https://www.linkedin.com");
// login
driver.findElement(By.id("login-email")).sendKeys("");
driver.findElement(By.id("login-password")).sendKeys("");
driver.findElement(By.name("submit")).click();
Thread.sleep(3000);
// navigate to Groups
Actions actions = new Actions(driver);
actions.moveToElement(driver.findElement(By.id("nav-link-interests"))).build().perform();
Thread.sleep(2000);
actions.moveToElement(driver.findElement(By.xpath("//ul[@id='interests-sub-nav']//a[contains(.,'Groups')]")))
.click().build().perform();
Thread.sleep(10000);
// navigate to mygroups
driver.findElement(By.linkText("My Groups")).click();
Thread.sleep(10000);
// Get all groups I am part of
for (WebElement groupNameElement : driver.findElements(By.xpath(
"//h3[contains(.,'GROUPS THAT I')][contains(.,'M IN')]/following-sibling::ul//a[@class='js-entity-name entity-name']"))) {
System.out.println(groupNameElement.getText());
}
你可以得到頁面的「源代碼」,是你在找什麼? – Paras
我其實想要呈現的html內容。例如,如果數據由腳本加載到特定的div中,我希望在div內加載數據而不是腳本內容。 – user2475467
當然這是可能的,你只需要一個體面的JS支持的瀏覽器(所以htmlunit在這個問題上是沒有問題的)。另一方面,linkedin有一個可以用於這種東西的api。也許你想檢查一下,如果它已經有你想要的。 https://developer.linkedin.com/docs您可能還想檢查瀏覽器中的請求 - 直接請求總是比處理硒中的時間問題更可靠。 – skandigraun