我用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);
这回不贴图了,贴个数据片段
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
......
>907fae80ddef53131f3292ee4f81644b音箱d1c6776b927dc33c5d9114750b586338频道5db79b134e9f6b82c0b36e0489ee08ed39528cedfa926ea0c01e69ef5b2ea9b0508ed05df02ec36ca2cb3298c67300f6907fae80ddef53131f3292ee4f81644b音箱d1c6776b927dc33c5d9114750b586338报价中心 品牌 漫步者 BOSE 麦博 惠威 JBL 飞利浦 奋达 罗技 小米 三诺 创新 朗琴 更多>> 价格 100元以下 101-200元 201-300元 301-500元 501-800元...16b28748ea4df4d9c2150843fecfba683954c96974ed274868c658cc77df206fe8a9c3880a72be01aa1d34c8c527b1c9speaker.pcpop.com/soundbox/ 2013-11-11 54bdf357c58b8a65c66d7c19c8e4d114c619352d3e20fee5e61deb714ea6706c08de552bfbf267751eef2a1208ab153a54da7612bd3cea665f6c38abbc17df7f72ac96585ae54b6ae11f849d2649d9e65db79b134e9f6b82c0b36e0489ee08ed16b28748ea4df4d9c2150843fecfba68- 64186f76e57c5f661bd40af16c656291百度快照5db79b134e9f6b82c0b36e0489ee08edfdb16296fe50958b33a71935f1179f9f54bdf357c58b8a65c66d7c19c8e4d11416b28748ea4df4d9c2150843fecfba68505e29c60732bdcd235be3e718efa66f1cadc14296d63780c2f8d1c33d0acc00查看更多关于“907fae80ddef53131f3292ee4f81644b音箱 频道d1c6776b927dc33c5d9114750b586338”的内容 >>5db79b134e9f6b82c0b36e0489ee08ed16b28748ea4df4d9c2150843fecfba68b90dd5946f0946207856a8a37f441edffd273fcf5bcad3dfdad3c41bd81ad3e5f16b1740fad44fb09bfe928bcc527e084f18f01efe543c26a9a2062857cd29d1a34de1251f0d9fe1e645927f19a896e85077b4a8e9551ff2e95495c760e70021ff4e2ec8753d5ab7a1c6a9335e730d21b1b2620bc0646228ea461515c28c6ae6<スピーカーd1c6776b927dc33c5d9114750b586338_コンピューター907fae80ddef53131f3292ee4f81644bスピーカー0fcc9a421f31cf83e79fe56c0bce8e79_c5f7a8ece5503b4882d714e7894e528cスピーカーd1c6776b927dc33c5d9114750b586338-IT168907fae80ddef53131f3292ee4f81644bスピーカーd1c6776b927dc33c5d9114750b586338チャンネル5db79b134e9f6b82c0b36e0489ee08ed39528cedfa926ea0c01e69ef5b2ea9b021677049e5b751d69b1465bbd638c12aIT168907fae80ddef53131f3292ee4f81644bスピーカーd1c6776b927dc33c5d9114750b586338 907fae80ddef53131f3292ee4f81644bスピーカーd1c6776b927dc33c5d9114750b586338および907fae80ddef53131f3292ee4f81644bオーディオd1c6776b927dc33c5d9114750b586338の最も専門的で信頼できる製品レビューを提供し、最新かつ最も正確な907fae80ddef53131f3292ee4f81644bスピーカーd1c6776b927dc33c5d9114750b586338を提供します。 ;オーディオd1c6776b927dc33c5d9114750b586338 の製品情報と見積もり情報。より良い購入に役立つさまざまなグレードの 907fae80ddef53131f3292ee4f81644bオーディオd1c6776b927dc33c5d9114750b586338 ;/div>7cb7a45032af7e8d9231ff4f02703236ce22857d02e5332c547e3ded2c09bc0bsound.it168.com/ 2013-11 -15 54bdf357c58b8a65c66d7c19c8e4d114556b4e8dfc95e25dd2cd38a7343150fb935ab25994d6f9dc37e437ffddf3a63f72ac96585ae54b6ae11f849d2649d9e65db79b134e9f6b82c0b36e0489ee08ed16b28748ea4df4d9c2150843fecfba68 4f213e3bd23b86b467eae39fae24c8d7ae46f1826ff3d73a81a1f471e7d7f7c25db79b134e9f6b82c0b36e0489ee08ed54bdf357c58b8a65c66d7c19c8e4d114 3f1c4e4b6b16bbbd69b2ee476dc4f83a
bds.ready(function( ){
リクエストのエンコーディングに関係なく、応答は常にヘッダーに Content-Type: text/html;charset=utf-8 があるため、utf-8 になります
アドバイスありがとうございます。さらに勉強してみます。
また、Google でうまく検索できませんでした。モデレータがもう一度試してみることはできますか?
http://www.google.com.hk/search?q=speaker&start=10
http://blog.csdn.net/jdgdf566/article/details/13632111