如何获得javascript转换后的html源代码


How to get html source code after javascript transformation?

在学校的一个项目,我正试图做一个网站,可以显示你的成绩在一个漂亮的方式比它现在正在做的。我已经能够登录到使用cURL网站,现在我想得到一个字符串的成绩,所以我可以用PHP编辑它。唯一的问题是,cURL获得html源代码时,它还没有被编辑的javascript获得成绩。

我想要你在字符串中打开firebug或inspector时得到的代码这样我就可以用php编辑它。

有人知道怎么做吗?我看到一些帖子说你必须等到页面加载,但我不知道如何让我的网站等待另一个第三方网站加载。

等待执行的代码,我想要的结果是:

<script type="text/javascript">
    var widgetWrapper = $("#objectWrapper325");
    if (widgetWrapper[0].timer !== undefined) {
        clearTimeout( jQuery('#objectWrapper325')[0].timer );
    }
    widgetWrapper[0].timer = setTimeout( function() {
        if (widgetWrapper[0].xhr !== undefined) {
            widgetWrapper[0].xhr.abort();
        }
        widgetWrapper[0].xhr = jQuery.ajax({
            type: 'GET',
            url: "",
            data: {
                "wis_ajax": 1,
                "ajax_object": 325,
                'llnr': '105629'
            },
            success: function(d) {
                var goodWidth = widgetWrapper.width();
                widgetWrapper.html(d);
                /* update width, needed for bug with standard template */
                $("#objectWrapper325 .result__overview").css('width',goodWidth-$("#objectWrapper325         .result__subjectlabels").width());
            }
        });
    }, 500+(Math.random()*1000));
</script>

首先,你必须了解使用cURL获取网页和使用浏览器访问同一网页之间微妙但非常重要的区别。

1。使用浏览器加载页面

在位置栏输入地址时,浏览器会将url转换为ip地址。然后,它尝试用该地址访问web服务器,请求一个网页。从现在开始,浏览器将只与web服务器对话HTTP。HTTP是一种用于在网络上传输文档的协议。浏览器实际上是从web服务器请求一个html文档(一堆文本)。web服务器通过将网页发送给浏览器来应答。如果网页是一个静态页面,web服务器只是选择一个html文件并通过网络发送它。如果它是一个动态页面,web服务器使用一些高级代码(如php)来生成web页面,然后发送它。

一旦网页被下载,浏览器就会解析页面并解释其中的html,从而在浏览器上生成实际的网页。在解析过程中,当浏览器发现script标记时,它会将其内容解释为javascript,这是一种在浏览器中使用的语言,用于操纵网页的外观并在浏览器内做一些事情。

记住,web服务器只发送了一个包含html内容的网页,他不知道什么是javascript。

所以当你在浏览器上加载网页时,javascript只有在浏览器上下载后才会被解释。

2。什么是旋度

如果你看一下curl手册页,你就会知道curl是一个在服务器之间传输数据的工具,它支持一些协议,HTTP就是其中之一。当您使用curl下载页面时,它将尝试以与浏览器相同的方式下载页面,但不会解析或解释任何内容。cURL不理解javascript或html,它只知道如何与web服务器对话。

3。解决方案

所以在你的情况下,你需要的是像cURL一样下载页面,并以某种方式使javascript被解释为好像它是在浏览器内。

如果你已经跟随我到这里,那么你已经准备好看看CasperJS。