这个问题我已经困扰好几天了... 我必须从 php 加载页面的整个 html。 在此页面上有一个 jquery 函数,当所有页面加载完毕时会调用该函数。这个函数将其他html加载到页面中,所以我必须加载所有html(也加载了jquery的部分)。我可以知道我得到了所有页面试图找到一些仅从 jquery 加载的标签。 (例如:名称为XXX的标签输入、属性为multiple的标签输入等)
所以我尝试:
$html = file_get_contents("http://wwww.siteToScrape.com");
if (strpos($html, 'multiple') !== false) {
echo 'found';
} else {
echo 'not found';
}
但结果是“未找到”。
然后我下载了simple html dom我尝试:
include 'simple_html_dom.php';
$html = file_get_html("http://wwww.siteToScrape.com");
if (strpos($html, 'multiple') !== false) {
echo 'found';
} else {
echo 'not found';
}
但结果仍然是“未找到”。
所以我想得到一些模拟浏览器的php脚本(这样也可以加载jquery),我下载了PHP Scriptable Web Browser我尝试:
require_once('browser.php');
$browser = new SimpleBrowser();
$p = $browser->get('http://wwww.siteToScrape.com');
if (strpos($p, 'multiple') !== false) {
echo 'found';
} else {
echo 'not found';
}
但结果仍然是“未找到”。 我不知道该怎么做。有人可以帮助我吗???谢谢!!!!
最佳答案
问题在于您正在尝试混合服务器和客户端。
PHP在服务器上运行 Javascript(因此还有 jQuery)在客户端浏览器中运行。
没有简单的方法来使用 PHP 运行 javascript。据我所知,这是不可能的。其他语言(例如 Java)也许能够完成您想要做的事情。
您应该考虑另一种方法来做到这一点。
这也是网络爬虫永远不会受到您使用 JavaScript 所做的事情影响的原因。在开发时记住这一点是一件好事。您的动态加载根本不会被这些爬虫索引。
关于php - 如何在 php 中获取部分从 jquery 加载的页面的整个 html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10507523/