Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.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
C# HTMLagilitypack可以';t解析内容_C#_Html Agility Pack_Geckofx - Fatal编程技术网

C# HTMLagilitypack可以';t解析内容

C# HTMLagilitypack可以';t解析内容,c#,html-agility-pack,geckofx,C#,Html Agility Pack,Geckofx,我用我的C#项目Geckofx和Htmlagilitypack解析一些网站(如Xing、LinkedIn)。 由于LinkedIn已经更新了他们的网页,因此无法解析信息。因为信息是在页面加载后用ajax加载的。这就是为什么,我需要的信息不是在源代码中准备的,这会禁用HtmlAgilityPack来获取信息 例如,请参见页面: 如何解析内容?本周早些时候,我也在想同样的事情。不幸的是,如果这个类似问题的答案仍然适用,那么仅使用HTMLAgilityPack是不可能的:( 您不能使用HAP执行此操作

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

例如,请参见页面:


如何解析内容?

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


您不能使用
HAP
执行此操作,但您可以使用Selenium Web驱动程序/Web浏览器控件或PhantomJS for headless Browser来执行此操作。以下是使用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的示例,对于selenium,我通过手动控制解决了这个问题:

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

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

你想从你提到的linkedin的链接中获取什么?例如他的姓名、职位和城市,但是如果你查看源代码,绝对没有任何信息。这对我来说没有问题,什么我应该使用而不是HTMLAgilityPack吗?你可以尝试在Firefox中使用firebug插件。我相信这使用的是DOM,而不仅仅是标记(与HTMLAgilityPack不同)。如果可能的话,按类获取div而不是标准XPATH是值得的。除非你不介意在站点结构发生变化时更新代码。