Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.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
如何查找外部站点的Javascript提交的URL_Javascript_Html_Url_Redirect_External - Fatal编程技术网

如何查找外部站点的Javascript提交的URL

如何查找外部站点的Javascript提交的URL,javascript,html,url,redirect,external,Javascript,Html,Url,Redirect,External,我将尽力解释这一点 我正在抓取一个网站的元素,然后以不同的格式输出。我所遇到的问题是,这个站点通过Javascript重定向来引导整个站点的用户 检查“a href”标记时,这是显示的Javascript javascript:doParamSubmit2100,document.forms['studentFilteredListForm','SSC00001MU9LI' SSC000001MU9lI针对其重定向到的每个元素进行更改 是否可以使用此Javascript找到URL,以便从外部访问

我将尽力解释这一点

我正在抓取一个网站的元素,然后以不同的格式输出。我所遇到的问题是,这个站点通过Javascript重定向来引导整个站点的用户

检查“a href”标记时,这是显示的Javascript javascript:doParamSubmit2100,document.forms['studentFilteredListForm','SSC00001MU9LI'

SSC000001MU9lI针对其重定向到的每个元素进行更改

是否可以使用此Javascript找到URL,以便从外部访问HTML页面

编辑:以下是doParamSubmit和doSubmit类:

function doParamSubmit(event, form, parameter) {
    form.userParam.value = parameter;
    doSubmit(event, form);
}

function doSubmit(event, form)
{
    // Make sure if something fails that the form can be resubmitted
    try
    {
        // If this form has not been submitted yet... (except for IE)
        if (allowSubmit == true && form != null && (submitted == false || isInternetExplorer6() || isInternetExplorer7()))
        {
            submitted = true;
            form.userEvent.value = event;

            // Fix for IE bug in which userEvent becomes a property array.
            if (form.userEvent.length)
            {
                form.userEvent[0].value = event;
            }

            // Disable the form so the user can't accidentally resubmit the page
            // (NOTE:  this doesn't disable links (e.g. <a href="javascript:...">)
            disableForm(form);

            // If there is a populate form function, call it. If there are spell check fields on the 
            // page, populateForm is used to set hidden field values.
            if (this.populateForm)
            {
                populateForm();
            }

            saveScrollCoordinates();
            // resetSessionTimeout();

            try
            {
                form.submit();
            }
            catch(e)
            {
                // Exceptions thrown here are only caused by canceling the submit in onbeforeunload, so ignore.
                submitted = false;
            }
        }

        if (allowSubmit == false)
        {
            alert(grabResource("message.pageLoading"));
        }
    }
    catch(e)
    {
        submitted = false;
        throw e;
    }
}
我看到两种方法

您可以使用支持javascript的浏览器,例如。我不确定你是否打算只关注链接,或者获取URL以供其他用途,因此你的里程数可能会有所不同

在他们的页面/脚本中找到doParamSumit函数,并对其进行分析,以了解它是如何获取URL的——例如,您所拥有的这个函数看起来像是从表单中获取操作的?一旦你知道了这个函数是如何工作的,你就可以通过使用一些正则表达式来找到与doParamSubmit模式匹配的URL,并从那里开始,在你的抓取中利用这些信息。很难说没有看到函数本身以及其他类似的链接

不管你选择哪种方法,我都会从理解函数开始——在代码或加载的js文件中查找它——你也可以在大多数浏览器上使用javascript调试器之类的东西来帮助你找到它,看看会发生什么——这可能是非常明显的

还请记住,这可能是一个表单的帖子-在这种情况下,如果该链接需要有效的表单数据,那么您跟随该链接的结果可能不起作用

编辑我看到你发布了这个函数。它只提交第二个参数中列出的表单,即“studentFilteredListForm”。虽然我不认为你的抓取会走得太远,但如果你的抓取器允许你使用类似$'form[name=studentFilteredListForm]的东西,你仍然可以通过javascript获得URL“.attr'action”或使用您用于scraper的任何语言,即查找表单并提取操作url,记住如果没有操作,它可能会发回当前url


但是再一次。。。您可以首先手动获取表单的URL,然后查看它的位置。您可能只是得到一个有表单错误的页面:

您需要阅读doParamSubmit函数,看看它能做什么。@Barmar是的,我已经读过了。我将把它添加到上面的代码中……是的,谢谢!:这是我将要开始追求的方法,但是js文件非常广泛,包括很多很多方法。我只是想先检查一下这里。类似这样的东西可能会有帮助。是的,我在控制台中执行了这个片段,看看它将如何运行,并且响应是相同的URL。更改发生在URL之后,即?navkey=academics.classes.list