假设我有一个网站,比如http://example.com。现在我想设计一个网站,我需要一些来自 example.com 的信息。例如,我可以使用 HTML/Javascript/JQuery 从网站源中取出特定行并将其存储在我的编码中的字符串中吗?
例如,假设 example.com 代码中的第 35 行是:- <h3> Welcome user</h3>
。所以在我的代码中的一个字符串中,我想存储“ <h3>Welcome user</h3>
”。我该怎么做?有什么建议么?
假设我有一个网站,比如http://example.com。现在我想设计一个网站,我需要一些来自 example.com 的信息。例如,我可以使用 HTML/Javascript/JQuery 从网站源中取出特定行并将其存储在我的编码中的字符串中吗?
例如,假设 example.com 代码中的第 35 行是:- <h3> Welcome user</h3>
。所以在我的代码中的一个字符串中,我想存储“ <h3>Welcome user</h3>
”。我该怎么做?有什么建议么?
由于跨域限制,JavaScript 无法访问其他服务器。但是,您可以访问自己的服务器并使用 PHP 之类的东西来完成工作:
echo file("http://example.com/")[34];
然而,你真的想这样做吗?毕竟,对网站的任何更改(您似乎无法控制)都会破坏您的代码,他们甚至可以在那里注入一些东西,如下所示:
<script>if(location.hostname != "example.com") kill_the_browser_slowly();</script>
我认为您最好解析 DOM,如下所示:
$dom = new DOMDocument();
$dom->loadHTML(file_get_contents("http://example.com/"));
$h3 = $dom->getElementsByTagName('h3')->item(0);
if( !$h3) echo "<h3>Can't find the header</h3>";
else echo $dom->saveHTML($h3);
仅使用 jQuery/Javascript/HTML 是不可能的。为此,您需要依赖一些服务器端技术。
如果没有像 node.js 或 php 这样的服务器端脚本语言或任何其他服务器端语言,您将无法做到这一点。
原因:要通过 JavaScript 从您的页面向另一个页面发出请求,您必须使用 AJAX,除非使用 CORS(您复制的页面必须允许),否则您不能在另一个域上运行。AJAX 请求通常绑定到它们源自的域,