我用php的函数fsockopen和fwrite,fgets等命令可直接获得http://www.baidu.com主页的内容,但却不能获得http://www.baidu.com/s?wd=音箱&pn=20的内容,甚是苦闷,觉得是百度做了防范了,但奇怪的是我将浏览器中所有的缓存和cookie都清除掉了,直接用地址栏访问http://www.baidu.com/s?wd=音箱&pn=20,却能够直接获得内容,但用php函数获取,却怎么也不行。百度是怎么能够区别出浏览器访问和程序访问的呢?哪位达人能说说原因和指点下迷津吗。
我没更多分了,用钱买php解决方案也行啊
回复讨论(解决方案)
添加 useragent 试试,
参考:http://tuzwu.iteye.com/blog/723260
当然试过了,已经参照Fiddler2截获的数据进行了全模仿
我觉得是你网络有问题
字符集编码问题吧?
奇了怪了,用file_get_contents确实可行,但用我的方法只是百度不能获取,其他网址都成功,这是为什么呢?
字符集编码没问题,我已经反复试验过了,同样的编码,file_get_contents是可以的
不知道你是怎么写的
$fp = fsockopen("www.baidu.com", 80, $errno, $errstr, 30);$out = "GET /s?wd=音箱&pn=20 HTTP/1.1\r\n";$out .= "Host: www.baidu.com\r\n";$out .= "Connection: Close\r\n\r\n";fwrite($fp, $out);while (!feof($fp)) { echo fgets($fp, 128);}fclose($fp);
Nach dem Login kopieren
这回不贴图了,贴个数据片段
Resource id #2HTTP/1.1 200 OK
Date: Fri, 29 Nov 2013 07:21:48 GMT
Server: BWS/1.0
Content-Length: 109229
Content-Type: text/html;charset=utf-8
Cache-Control: private
BDPAGETYPE: 3
BDUSERID: 0
BDQID: 0xba09dfbd018d026b
Set-Cookie: BDSVRTM=245; path=/
Set-Cookie: H_PS_PSSID=4316_1462_4181_4261; path=/; domain=.baidu.com
Set-Cookie: BAIDUID=93A4FEBC6A24E74B727FEE7001E65B50:FG=1; expires=Fri, 29-Nov-43 07:21:47 GMT; path=/; domain=.baidu.com
P3P: CP=" OTI DSP COR IVA OUR IND COM "
Connection: Close
......
>
音箱频道
音箱报价中心 品牌 漫步者 BOSE 麦博 惠威 JBL 飞利浦 奋达 罗技 小米 三诺 创新 朗琴 更多>> 价格 100元以下 101-200元 201-300元 301-500元 501-800元...
speaker.pcpop.com/soundbox/ 2013-11-11 -
target="_blank"
class="m">百度快照
data-click="{ 'F':'778317EA', 'F1':'9D73F1E4', 'F2':'4CA6DD6B', 'F3':'54E5243F', 'T':'1385709708', 'y':'F3D2FEDF' }" href="http://www.baidu.com/link?url=iHdhI9m-N3i0M6QsBp8zjalqAtClICWD28BH_hXsPvRlaAAlSHQ9pzL0AZsRgan2" target="_blank" >音箱_电脑音箱_音响-IT168音箱频道
IT168音箱频道向您提供最专业最权威的音箱、音响产品评测,为您带来最新最准确的音箱、音响产品资讯报价信息,给您提供各种档次音箱和音响产品评析,帮您更好的选购...
sound.it168.com/ 2013-11-15
<script> <br /> bds.ready(function(){ <br /> <p class="sougouAnswer"> 无论你发出的请求是什么编码的,返回的总是 utf-8 的 <br /> 因为他的头部有 Content-Type: text/html;charset=utf-8 <p class="sougouAnswer"> 领教,多谢了。我再对照研究下。 <br /> 另外,google的我一直不能成功,版主能再费时试下吗? <br /> http://www.google.com.hk/search?q=音箱&start=10 <p class="sougouAnswer"> http://blog.csdn.net/jdgdf566/article/details/13632111 </script>
|