我今天在学习 php 时,按照书本敲了一个存书签的小程序,简单来讲就是把一个 url 提交,然后使用 fopen 函数访问这个 url ,像下面这样
if(!(@fopen($new_url, 'r'))) {
echo $new_url;
throw new Exception('地址无效,请查证~');
}
然后测试了几个 url ,像
都没发现问题。
但是我想存一个知乎的 url 时居然会显示地址无效~
我把知乎的主页网址完全考下来存进去,也是不行。
这是什么情况,会不会是知乎这个网站的限制?还是说有什么其他原因导致失败?

1
yernsun Sep 30, 2015
检查一下 gzip ,试试 file_get_contents("compress.zlib://".$url);,最好还是用 curl 吧
|
3
mogita Sep 30, 2015 via iPhone
试试豆瓣?
|
4
xiamingchong Sep 30, 2015
你需要把自己伪装成蜘蛛,或者把 refer 改成 v2ex
|
5
wesley Sep 30, 2015
为什么不用 get_header
|
7
musicq OP @wesley 。。。其实不太懂,我刚看别人写的抓取其他网站的 icon ,也是用 file_get_contents 访问的,但是他就成功抓到知乎的 icon 了
|
8
star001007 Sep 30, 2015
你们最近怎么老都在抓知乎。。。
|
9
lhx2008 Sep 30, 2015
你发了“人”的 HTTP HEADER 了么?
|
10
pmpio Sep 30, 2015
他们网站可能有 UA 判断吧。。。。
|
11
programcat Sep 30, 2015
user_agent
|
12
adexbn Sep 30, 2015 via iPhone
user_agent
|
13
Omitted Sep 30, 2015
@star001007 看 python 爬虫的入门教程,十个里面九个爬过知乎
|
14
mogita Sep 30, 2015
我最近也在做类似的 web app 。豆瓣好像有一道跳转,第一道抓取就获取不到真实的网页内容。。我太菜了没法搞定就先没管了(姚明
|