IE源码正常file_get_contents和CURL抓取不到内容,求大牛 file_get_contents和CURL都测试了,获取不到内容,IE下可以正常看到源码。求解上个地址,求高手www.vodtw.com/Html/Book/2/2457/Index.html 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 >wget http://www.vodtw.com/Html/Book/2/2457/Index.html--2012-11-22 21:38:11-- http://www.vodtw.com/Html/Book/2/2457/Index.htmlResolving www.vodtw.com (www.vodtw.com)... 72.20.46.34Connecting to www.vodtw.com (www.vodtw.com)|72.20.46.34|:80... connected.HTTP request sent, awaiting response... 307 Temporary RedirectLocation: /Html/Book/2/2457/Index.html [following]--2012-11-22 21:38:12-- http://www.vodtw.com/Html/Book/2/2457/Index.htmlConnecting to www.vodtw.com (www.vodtw.com)|72.20.46.34|:80... connected.HTTP request sent, awaiting response... 307 Temporary RedirectLocation: /Html/Book/2/2457/Index.html [following]--2012-11-22 21:38:12-- http://www.vodtw.com/Html/Book/2/2457/Index.htmlConnecting to www.vodtw.com (www.vodtw.com)|72.20.46.34|:80... connected.HTTP request sent, awaiting response... 200 OK看得明白吧? 虽然懂点http协议,还是不懂,求解释重定向2次curl就抓不到了? 用 get_headers 观察一下里面有很多 Set-Cookie:LDIISWALL8.3= ;PATH=/ ;DOMAIN=WWW.VODTW.COM给 curl 添加 CURLOPT_COOKIEJAR 参数后,即可正常抓取HTTP/1.1 307 Temporary Redirect307临时重定向暂时驻留在不同的URI请求的资源。由于重定向可以被改变的机会,为将来的请求,客户端应该继续使用Request-URI。这个响应是可缓存的,如果一个Cache-Control或Expires头域。临时URI应该是“位置”字段中的响应。除非请求方法是HEAD,响应实体应该包含一个简短的超文本注意以超链接到新的URI(S),因为许多pre-HTTP/1.1用户代理不明白307的状态。因此,本说明的应该包含一个用户的新的URI上重复原始请求所必需的信息。如果收到的307状态代码以外的GET或HEAD请求,用户代理必须不能自动重定向请求,除非它可以由用户确认,因为这可能会改变在何种情况下发出请求。google 翻译 $cookiejar = realpath('cookie.txt');$url = 'http://www.vodtw.com/Html/Book/2/2457/Index.html';$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $url);//curl_setopt($ch, CURLOPT_HEADER, true);curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);curl_setopt($ch, CURLOPT_COOKIEJAR, $cookiejar);$content = curl_exec($ch);echo $content;<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><title>豪门不承欢:慕少,请自重! - 品书网 - 最新章节|全文阅读|免费阅读|下载|</title><meta HTTP-EQUIV="Window-target" content="_top" />..... function curlGet($url) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HEADER, true); curl_setopt($ch, CURLOPT_COOKIEJAR, 'LDIISWALL8.3= ;PATH=/ ;DOMAIN=WWW.VODTW.COM');curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); return curl_exec($ch); } $url = 'http://www.vodtw.com/Html/Book/2/2457/Index.html'; echo curlGet($url); PHP代码贴出,感谢各位的解答,谢谢 请教大家数组问题,标题要长。。。 请教PHP 条件查询(较复杂) 后 更新数据库 有没有人做过工行的php接口? 一个奇怪的问题,请高人指点! 用php备份恢复mysql数据表的某一条记录的现成例子有木有? 如何用php代码调用两点地图(百度或谷歌)的最短驾车公里数(急) 链接地址的问题.怎么解决 asp和php可否在win2000下一块运行 再次提出问题:如何使用PHP进行全文替换(要用程序来实现) 怎么才能更好的理解树形啊 php调用com读取word的问题-高分在线等 请教本板块既懂php又懂asp.net的大侠一个问题
--2012-11-22 21:38:11-- http://www.vodtw.com/Html/Book/2/2457/Index.html
Resolving www.vodtw.com (www.vodtw.com)... 72.20.46.34
Connecting to www.vodtw.com (www.vodtw.com)|72.20.46.34|:80... connected.
HTTP request sent, awaiting response... 307 Temporary Redirect
Location: /Html/Book/2/2457/Index.html [following]
--2012-11-22 21:38:12-- http://www.vodtw.com/Html/Book/2/2457/Index.html
Connecting to www.vodtw.com (www.vodtw.com)|72.20.46.34|:80... connected.
HTTP request sent, awaiting response... 307 Temporary Redirect
Location: /Html/Book/2/2457/Index.html [following]
--2012-11-22 21:38:12-- http://www.vodtw.com/Html/Book/2/2457/Index.html
Connecting to www.vodtw.com (www.vodtw.com)|72.20.46.34|:80... connected.
HTTP request sent, awaiting response... 200 OK看得明白吧?
里面有很多 Set-Cookie:LDIISWALL8.3= ;PATH=/ ;DOMAIN=WWW.VODTW.COM
给 curl 添加 CURLOPT_COOKIEJAR 参数后,即可正常抓取
HTTP/1.1 307 Temporary Redirect
307临时重定向
暂时驻留在不同的URI请求的资源。由于重定向可以被改变的机会,为将来的请求,客户端应该继续使用Request-URI。这个响应是可缓存的,如果一个Cache-Control或Expires头域。
临时URI应该是“位置”字段中的响应。除非请求方法是HEAD,响应实体应该包含一个简短的超文本注意以超链接到新的URI(S),因为许多pre-HTTP/1.1用户代理不明白307的状态。因此,本说明的应该包含一个用户的新的URI上重复原始请求所必需的信息。
如果收到的307状态代码以外的GET或HEAD请求,用户代理必须不能自动重定向请求,除非它可以由用户确认,因为这可能会改变在何种情况下发出请求。
google 翻译
curl_setopt($ch, CURLOPT_URL, $url);
//curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookiejar);
$content = curl_exec($ch);
echo $content;
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>豪门不承欢:慕少,请自重! - 品书网 - 最新章节|全文阅读|免费阅读|下载|</title>
<meta HTTP-EQUIV="Window-target" content="_top" />
.....
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_COOKIEJAR, 'LDIISWALL8.3= ;PATH=/ ;DOMAIN=WWW.VODTW.COM');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
return curl_exec($ch);
}
$url = 'http://www.vodtw.com/Html/Book/2/2457/Index.html';
echo curlGet($url);
PHP代码贴出,感谢各位的解答,谢谢