我用我的C#項目Geckofx和Htmlagilitypack來解析一些網站(例如Xing,LinkedIn)。 由於LinkedIn更新了他們的網頁,因此無法解析相關信息。因爲信息在加載頁面後正在加載ajax。這就是爲什麼,我需要的信息不是在源代碼中準備的,這會禁用HtmlAgilityPack來獲取信息。HTMLagilitypack無法解析內容
例如看到頁面:https://www.linkedin.com/in/johntroch/
我怎麼可以解析的內容?
我用我的C#項目Geckofx和Htmlagilitypack來解析一些網站(例如Xing,LinkedIn)。 由於LinkedIn更新了他們的網頁,因此無法解析相關信息。因爲信息在加載頁面後正在加載ajax。這就是爲什麼,我需要的信息不是在源代碼中準備的,這會禁用HtmlAgilityPack來獲取信息。HTMLagilitypack無法解析內容
例如看到頁面:https://www.linkedin.com/in/johntroch/
我怎麼可以解析的內容?
本週早些時候我想知道同樣的事情。不幸的是,如果從這個類似的問題的答案仍然適用,所以無法使用只做HTMLAgilityPack :(
對我來說沒問題,我應該用什麼來代替HTMLAgilityPack? –
你可以嘗試在Firefox中使用firebug add。這我相信使用DOM,而不僅僅是標記(不像HTMLAgilityPack)。如果可能的話,而不是標準的XPATH,它會付出代價。除非您不介意在網站結構發生變化時更新代碼。 –
你不能用HAP
做到這一點,但你可以與硒的幫助下做。網絡驅動程序/ Web瀏覽器控件或PhantomJS用於模擬瀏覽器下面是使用PhantomJS司機的樣本
IWebDriver driver = new PhantomJSDriver();
driver.Navigate().GoToUrl("https://www.linkedin.com/in/johntroch/");
var backpack = driver.FindElement(By.XPath("//*[contains(@class,'profile-overview')]"));
上面這段代碼將讓你這樣的:
這裏是你如何使用PhantomJS的Link和硒Visit this
我用手動控制解決它:
while (!getSource().Contains("any text");)
{
Application.DoEvents();
}
的getSource()是給我的源代碼的另一種方法的頁面。我做一個檢查,直到我得到我的文本。然後我得到所有與動態內容的源代碼。
你想從你提到的linkedin鏈接中獲取什麼? –
例如他的名字,職位和城市,但如果您查看源代碼,則絕對沒有信息。 –