我今天在学习 php 时,按照书本敲了一个存书签的小程序,简单来讲就是把一个 url 提交,然后使用 fopen 函数访问这个 url ,像下面这样
if(!(@fopen($new_url, 'r'))) { echo $new_url; throw new Exception('地址无效,请查证~'); }
然后测试了几个 url ,像
都没发现问题。
但是我想存一个知乎的 url 时居然会显示地址无效~
我把知乎的主页网址完全考下来存进去,也是不行。
这是什么情况,会不会是知乎这个网站的限制?还是说有什么其他原因导致失败?
![]() | 1 yernsun 2015-09-30 16:47:23 +08:00 检查一下 gzip ,试试 file_get_contents("compress.zlib://".$url);,最好还是用 curl 吧 |
![]() | 3 mogita 2015-09-30 17:09:52 +08:00 via iPhone 试试豆瓣? |
![]() | 4 xiamingchong 2015-09-30 17:15:40 +08:00 你需要把自己伪装成蜘蛛,或者把 refer 改成 v2ex |
![]() | 5 wesley 2015-09-30 17:19:20 +08:00 为什么不用 get_header |
![]() | 7 musicq OP @wesley 。。。其实不太懂,我刚看别人写的抓取其他网站的 icon ,也是用 file_get_contents 访问的,但是他就成功抓到知乎的 icon 了 |
8 star001007 2015-09-30 17:33:08 +08:00 你们最近怎么老都在抓知乎。。。 |
![]() | 9 lhx2008 2015-09-30 17:34:43 +08:00 你发了“人”的 HTTP HEADER 了么? |
![]() | 10 pmpio 2015-09-30 17:37:12 +08:00 他们网站可能有 UA 判断吧。。。。 |
![]() | 11 programcat 2015-09-30 17:42:02 +08:00 user_agent |
![]() | 12 adexbn 2015-09-30 19:04:47 +08:00 via iPhone user_agent |
![]() | 13 Omitted 2015-09-30 19:38:39 +08:00 @star001007 看 python 爬虫的入门教程,十个里面九个爬过知乎 |
![]() | 14 mogita 2015-09-30 20:11:23 +08:00 我最近也在做类似的 web app 。豆瓣好像有一道跳转,第一道抓取就获取不到真实的网页内容。。我太菜了没法搞定就先没管了(姚明 |