如何从网页获取源代码?

use*_*010 6 javascript php

我们如何从 php 和/或 javascript 网页中获取网页的源代码?

D.S*_*nap 10

在 Javascript 中,不使用不必要的框架(在示例中 api.codetabs.com 是绕过跨源资源共享的代理):

fetch('https://api.codetabs.com/v1/proxy?quest=google.com').then((response) => response.text()).then((text) => console.log(text));
Run Code Online (Sandbox Code Playgroud)


Mag*_*eek 2

谢谢:

首先,您必须知道,您将永远无法获得与您的 javascript 页面不在同一域中的页面的源代码。(参见http://en.wikipedia.org/wiki/Same_origin_policy)。

在 PHP 中,您可以这样做:

file_get_contents($theUrl);
Run Code Online (Sandbox Code Playgroud)

在javascript中,有以下三种方式:

首先,通过 XMLHttpRequest : http: //jsfiddle.net/635YY/1/

var url="../635YY",xmlhttp;//Remember, same domain
if("XMLHttpRequest" in window)xmlhttp=new XMLHttpRequest();
if("ActiveXObject" in window)xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
xmlhttp.open('GET',url,true);
xmlhttp.onreadystatechange=function()
{
    if(xmlhttp.readyState==4)alert(xmlhttp.responseText);
};
xmlhttp.send(null);
Run Code Online (Sandbox Code Playgroud)

其次,通过 iFrames : http: //jsfiddle.net/XYjuX/1/

var url="../XYjuX";//Remember, same domain
var iframe=document.createElement("iframe");
iframe.onload=function()
{
    alert(iframe.contentWindow.document.body.innerHTML);
}
iframe.src=url;
iframe.style.display="none";
document.body.appendChild(iframe);
Run Code Online (Sandbox Code Playgroud)

第三,通过 jQuery: http: //jsfiddle.net/edggD/2/

$.get('../edggD',function(data)//Remember, same domain
{
    alert(data);
});
Run Code Online (Sandbox Code Playgroud)