我今天在学习 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
ck65 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
ck65 2015-09-30 20:11:23 +08:00
我最近也在做类似的 web app 。豆瓣好像有一道跳转,第一道抓取就获取不到真实的网页内容。。我太菜了没法搞定就先没管了(姚明
|