php爬网-启用javascript
大家好,有没有人知道一种创建spider的方法,就像启用了javascript一样 PHP代码:php爬网-启用javascript,php,web-crawler,Php,Web Crawler,大家好,有没有人知道一种创建spider的方法,就像启用了javascript一样 PHP代码: file_get_contents("http://www.google.co.uk/search?hl=en&q=".$keyword."&start=".($x*10)."&sa=N") file_get_contents("http://www.facebook.com/something/something.something.php") (im not sur
file_get_contents("http://www.google.co.uk/search?hl=en&q=".$keyword."&start=".($x*10)."&sa=N")
file_get_contents("http://www.facebook.com/something/something.something.php")
(im not sure i just know face book is a good example)
它将检索该页面的输出。
如果你用,
PHP代码:
file_get_contents("http://www.facebook.com/something/something.something.php")
(im not sure i just know face book is a good example)
它将返回trhe输出,我猜这将包括“必须启用javascript才能继续”这样的内容,因为它是一个javascript操作的站点(不可访问)
编辑:
PHP代码:
刚刚检查过
$link = "http://www.facebook.com/index.php";
$contents = file_get_contents($link);
echo $contents;
返回:
您正在使用不兼容的web浏览器
抱歉,您的浏览器不够酷,无法支持您的浏览器。请使用以下浏览器之一保持真实:
* Mozilla Firefox
* Safari
* Microsoft Internet Explorer
我通过上面所有的浏览器测试了它
? 显然,在这种特定情况下,Facebook只测试HTTP头“
用户代理”
”
如果我正在使用这部分代码,基于,它允许我设置许多光电管,使用:
我得到的信息和你一样
但是,如果我尝试发送与Firefox对应的
用户代理
(我只是复制粘贴了我真正的Firefox实际发送的代理):
我得到的是真实的Facebook主页,而不是关于不兼容浏览器的错误消息
当然,这并不能解决Javascript无法执行的问题 。。。但是在没有浏览器的情况下执行Javascript是一件相当困难的事情(甚至连谷歌都没有解决它^^) 有一些引擎允许在没有浏览器的情况下运行Javascript代码(例如rhino;或者PHP);但是,即使它们允许您运行Javascript代码,您也不会拥有浏览器提供的所有环境和方法,而这些正是网站所依赖的
如果您需要对依赖Javascript的网站进行爬网,可以使用它打开一个真正的浏览器(ie、firefox或其他),通过PHP代码对其进行控制 但这意味着您必须在PHP机器上有一个图形环境和一个浏览器;这也是相当沉重和缓慢的-比只加载网页慢得多^^
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.facebook.com/index.php");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.3) Gecko/20090910 Ubuntu/9.04 (jaunty) Shiretoko/3.5.3");
$html = curl_exec($ch);
curl_close($ch);
echo $html;