执行javascript链接后从网页获取HTML

时间:2017-12-30 11:21:16

标签: javascript c# html asp.net

有一个互联网页面,当你点击一个javascript链接(带有javascript:...的标签)时,会加载一个表格。 我需要把这个表放到我的Asp.net网站上。没有执行任何脚本的URL没有包含该表的URL。 这就是我目前使用的:

public string GetFromUrl(string path)
{
    WebClient web = new WebClient();
    return web.DownloadString(path);
}

public string GetTagHTML(string html)
{
    Regex regex = new Regex("<table>(.*)</table>");
    var v = regex.Match(html);
    return v.Groups[1].ToString();
}

更多信息

我尝试从中获取数据的网站是http://beitbiram.iscool.co.il/default.aspx (这是希伯来语。我试图点击的链接是表格标题之一。)

该网站是一个asp.net网站。

链接调用的函数是__doPostBack。我不知道它做了什么,也找不到任何有关它的在线信息,但这是它的代码:

var theForm = document.forms['Form'];
if (!theForm) {
    theForm = document.Form;
}
function __doPostBack(eventTarget, eventArgument) {
    if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
        theForm.__EVENTTARGET.value = eventTarget;
        theForm.__EVENTARGUMENT.value = eventArgument;
        theForm.submit();
    }
}

提前致谢。

1 个答案:

答案 0 :(得分:0)

一般来说,运行Javascript后获取页面HTML的唯一方法是运行Javascript,这需要一个浏览器。

然后,对您的问题的直接回答是使用类似Headless Chrome的内容来启动浏览器,加载页面,单击链接以及导出HTML。这在历史上一直是一个巨大的痛苦,虽然Headless Chrome应该不那么痛苦。

但是,您运行的javascript:链接必须从某处获取数据才能将其放入表中,因此我强烈建议您自己查找该源并构建表,因为我当然不会这样做。 ;如果我不是必须的话,我想维护一个带有嵌入式浏览器的网站。