如何在javascript转换后获取html源代码?

Bla*_*for 0 html javascript php curl

对于在学校的项目我试图建立一个网站,可以比现在更好的方式显示你的成绩.我已经能够使用cURL登录该站点,现在我想获得字符串中的成绩,以便我可以使用PHP编辑它.唯一的问题是,当cURL没有被获得成绩的javascript编辑时,它会获取html源代码.

所以基本上我想要你在字符串中打开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>
Run Code Online (Sandbox Code Playgroud)

小智 5

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

1.使用浏览器加载页面

当您在位置栏上输入地址时,浏览器会将URL转换为IP地址.然后它尝试使用该地址访问Web服务器,要求提供网页.从现在开始,浏览器将只说HTTP与Web服务器.HTTP是用于通过网络承载文档的协议.浏览器实际上是从Web服务器请求一个html文档(一堆文本).Web服务器通过将Web页面发送到浏览器来应答.如果网页是静态页面,则Web服务器只是选择一个html文件并通过网络发送.如果它是一个动态页面,Web服务器使用一些高级代码(如php)生成到网页然后发送它.

一旦网页已经被下载,浏览器将然后解析页面并解释内部产生浏览器上的实际网页的HTML.在解析过程中,当浏览器找到script标签时,它会将其内容解释为javascript,这是浏览器中用来操纵网页外观并在浏览器中执行操作的语言.

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

因此,当您在浏览器上加载网页时,只有在浏览器上下载javascript时才会对其进行解释.

2.什么是cURL

如果你看一下curl手册页,你会发现curl是一个从/向服务器传输数据的工具,它可以说一些支持的协议,而HTTP就是其中之一.当您下载带有curl的页面时,它将尝试以与浏览器相同的方式下载页面,但不会解析或解释任何内容.cURL不懂javascript或html,它所知道的就是如何与Web服务器对话.

3.解决方案

所以在你的情况下你需要的是像cURL那样下载页面并且还以某种方式使javascript被解释为好像它在浏览器中.

如果你跟我到这里,那么你准备好看看CasperJS.

  • Javascript ..不是java.它们是两种不同的语言. (4认同)