我这问题好几天了...
我必须从 php 加载页面的整个 html。
在此页面上有一个 jquery 函数,当所有页面加载完毕时会调用该函数。这个函数将其他html加载到页面中,所以我必须加载所有html(也加载了jquery的部分)。我可以知道我得到了所有页面试图找到一些仅从 jquery 加载的标签。 (例如:名称为XXX的标签输入、属性为倍数的标签输入等)
所以我尝试:
$html = file_get_contents("http://wwww.siteToScrape.com");
if (strpos($html, 'multiple') !== false) {
echo 'found';
} else {
echo 'not found';
}
但结果是“未找到”。
然后我下载了简单的 html dom http://simplehtmldom.sourceforge.net/我尝试:
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 脚本化 Web 浏览器 http://simpletest.org/en/browser_documentation.html我尝试:
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 所做的事情影响的原因。在开发时记住这一点是一件好事。你的动态加载根本不会被这些爬虫索引。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)