如何获得通过AJAX与HTML Agility Pack生成的HTML?

ajax asp.net c# html html-agility-pack

我正在尝试解析网页。通过AJAX, WebClient.DownloadString生成的那个页面的一部分我可以获得整个HTML,除了通过AJAX生成的代码?请问有人帮帮我吗?

我的代码是:

var client = new WebClient();
client .Headers.Add(HttpRequestHeader.UserAgent, "UserAgent,Mozilla/5.0 (Windows NT 5.1; rv:14.0) Gecko/20100101 Firefox/14.0.1");
client.Headers.Add(HttpRequestHeader.Cookie, "USER_PW=xxxxxxxxx; PHPSESSID=xxxxxxxxxxxxxxxxxx");
var html = client.DownloadString("xxxxxxxxxx");

我需要空缺名单......

一般承认的答案

它可以获取通过AJAX生成的内容但是它不是直接的任务 ,所有你得到的是页面源(当你右击并说出查看页面源时你可以看到的相同)

要获取ajax内容,您必须记下AJAX调用命中的URL,然后再调用此url来获取内容。 You can get this if you inspect the Network Tab of the developer window in any browser或者甚至查看其中的javascript代码, You can get this if you inspect the Network Tab of the developer window in any browser

缺点:这也意味着你只需要获得AJAX调用的响应,但是如果javascript正在操作这个响应(比如用json响应创建一个表)。您可能需要在最后手动执行此操作。

所以它也意味着你最终会编写与javascript相同的逻辑来获得结果HTML,这似乎有很多痛苦和错误的漏洞。

优点:如果您只关注HTML中的数据(如网站数据库中的数据)而不是确切的HTML本身,那么这种方法对您有用。



Related

许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow