我如何获得通过 AJAX 和 HTML Agility Pack 生成的 html?
how can i get html that is generated via AJAX with HTML Agility Pack?
我正在尝试解析网页。通过 AJAX 生成的该页面的一部分,
WebClient.DownloadString
除了通过 AJAX 生成的代码外,我可以获得整个 HTML?你能帮帮我吗?
我的代码是:
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 代码。
缺点: 这也意味着你只会得到 AJAX 调用的响应,但是如果 javascript 正在操纵这个响应(比如创建json 个响应中的 table 个)。这可能需要您手动完成。
所以这也意味着您最终将编写与 javascript 中相同的逻辑来获得结果 HTML,这似乎很痛苦,而且错误漏洞太多。
优点: 如果您只关心 HTML 中的数据(如来自网站数据库的数据),而不是确切的 HTML本身,那么这个方法对你有用。
我正在尝试解析网页。通过 AJAX 生成的该页面的一部分,
WebClient.DownloadString
除了通过 AJAX 生成的代码外,我可以获得整个 HTML?你能帮帮我吗?
我的代码是:
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 代码。
缺点: 这也意味着你只会得到 AJAX 调用的响应,但是如果 javascript 正在操纵这个响应(比如创建json 个响应中的 table 个)。这可能需要您手动完成。
所以这也意味着您最终将编写与 javascript 中相同的逻辑来获得结果 HTML,这似乎很痛苦,而且错误漏洞太多。
优点: 如果您只关心 HTML 中的数据(如来自网站数据库的数据),而不是确切的 HTML本身,那么这个方法对你有用。