HTMLagilitypack无法解析内容

时间:2017-03-14 11:32:54

标签: c# html-agility-pack geckofx

我用我的C#项目Geckofx和Htmlagilitypack解析一些网站(例如Xing,LinkedIn)。 由于LinkedIn已更新其网页,因此无法解析信息。因为信息在页面加载后加载了ajax。这就是为什么,我需要的信息没有在源代码中准备,这会禁用HtmlAgilityPack来获取信息。

例如,请参阅页面:https://www.linkedin.com/in/johntroch/

我如何解析内容?

3 个答案:

答案 0 :(得分:1)

我用手动控制解决了这个问题:

                while (!getSource().Contains("any text");)
                {
                    Application.DoEvents();
                } 

getSource()是另一种给我页面源代码的方法。我检查直到我得到我的文字。然后我获得了动态内容的所有源代码。

答案 1 :(得分:0)

本周早些时候,我想知道同样的事情。不幸的是,如果这个类似问题的答案仍然适用,则不可能仅使用HTMLAgilityPack :(

HTMLAgilityPack load AJAX content for scraping

答案 2 :(得分:0)

您无法使用HAP执行此操作,但您可以在Selenium Web驱动程序/ 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')]"));

以上代码将为您提供:

output of nodes fetched

以下是Link如何使用PhantomJS和硒Visit this