我有一个PHP脚本,它使用CURL和simple_html_dom PHP库从另一个网站加载页面内容。这非常有效。如果我回复了返回的HTML,我可以在那里看到div-content。
但是,如果我尝试仅使用simple_html_dom选择该div,则div始终返回空。起初我不知道为什么。现在我知道这是因为它的内容显然填充了javascript / ajax。
我如何获取网站的内容,然后能够在javascript用正确的内容填充它之后选择div-content?
甚至可能吗? 谢谢!
答案 0 :(得分:2)
如果您只对ajax返回的特定html感兴趣,那么这是小菜一碟。
答案 1 :(得分:1)
对于这种屏幕抓取,您可以尝试phpQuery或Snoopy。
phpQuery有web browser plugin并且scoopy声称要模拟一个
答案 2 :(得分:1)
当xhr将数据返回给浏览器并在那里执行操作时,您始终可以绑定到触发的事件。
var xhReq = createXMLHttpRequest();
xhReq.open("GET", "ur_php_url.php");
xhReq.onreadystatechange = onResponse;
xhReq.send(null);
function onResponse()
{
// do the necessary
}
答案 3 :(得分:1)
是的,这是可能的。
您需要做的是:
离。假设您想要获取http://www.domain.com/page.html的内容,并且此page.html使用Ajax检索其他一些数据,例如$(“#div”)。load(“http://www.domain.com/ajax/data .PHP时间= 48484&安培; C = 487387" )
您要做的是首先向page.html发出CURL请求,并使用preg_match()PHP函数或任何其他语言的任何等效函数获取Ajax调用的完整URL。之后,为该网址创建另一个CURL请求 - http://www.domain.com/ajax/data.php?time=48484&c=487387 - 并获取其内容。
你们都准备好了!
答案 4 :(得分:0)
不幸的是,Javascript在浏览器中运行在客户端,所以除非在Web浏览器中加载页面,否则没有简单的方法。
我能想到的唯一方法是让浏览器在服务器的后台运行,重新加载并自动将生成的页面保存在一个文件中,该文件可供PHP脚本获取。 嗯......我不知道有谁实施了这样的想法。
最好尝试获取填充div的URL。例如,如果通过AJAX生成div内容,也许如果您使用cURL获取数据源URL,那么数据也可供您使用。