喜悦国际村 
» 游客:  注册 | 登录 | 搜索 | 统计 | 喜悦证交所 | 帮助

RSS 订阅当前论坛  

$5.95 Web Hosting     

上一主题 下一主题
     
标题: [问题] http 跳转后页面的采集  
 
happylmj
新手上路
Rank: 1



UID 90634
精华 0
积分 16
帖子 12
金钱 16 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2007-4-3
状态 离线
[广告]: 代充Paypal帐号美元
http 跳转后页面的采集

请问,  我已知一个url 但我采集的时候 这个url跳转了.  怎么样通过 http头 来得到新的跳转后的地址, 请大虾指点
2007-4-10 01:49 PM#1
查看资料  发短消息  顶部
 
sanders_yao
版主
Rank: 7Rank: 7Rank: 7
or2 =333


UID 30286
精华 0
积分 2572
帖子 4774
金钱 2569 喜悦币
威望 0
人脉 3
阅读权限 100
注册 2004-7-23
来自 北京 菜户营
状态 在线
[广告]: 代充Paypal帐号美元
我正好在学习dede远程下载的类型
以下是dede判断跳转的方法:(由于用utf-8打开了他的gb2312文件 可能有些中文不能显示)
if(ereg("^3",$this->m_httphead["http-state"])){
                        if($this->JumpCount > 3){
                                return NULL;
                        }
                        if(isset($this->m_httphead["location"])){
                                $newurl = $this->m_httphead["location"];
                                if(eregi("^http",$newurl)){
                                        $this->JumpOpenUrl($newurl);
                                }else{
                                        $newurl = $this->FillUrl($newurl);
                                        $this->JumpOpenUrl($newurl);
                                }
                        }else{
                                $this->m_error = "޷ʶĴ𸴣";
                        }
                }


以下是我自己仿照的:(同样是由于字符集问题 中文注释没有正常显示-_-b以后决定统一都用utf-8写文件了)
if(3 == $this->itsRHead["status"][0]){
                        if(3 < $this->itsJumps){
                                $this->itsError .= "[5]";//ض
                                return false;
                        }
                        if(isset($this->itsRHead["location"])){
                                if("http" != substr($this->itsRHead["location"], 0, 4)){
                                        $tempUrl = $this->itsRHead["location"];
                                        $this->itsRHead["location"] = "http://" . $this->itsParseUrl["host"]
                                        . ":" . $this->itsPHead["port"] . "/"
                                        . $this->itsRHead["location"];
                                }
                                $this->itsUrl = $this->itsRHead["location"];
                                $this->ini();
                                $this->send();
                        }else{
                                $this->itsError .= "[6]";//޷ȡضַ
                                return false;
                        }
                }




最近写的一些代码都会在以下地址发布,有兴趣的来批:
http://www.phpx.com/happy/thread-131368-1-1.html
2007-4-10 02:03 PM#2
查看资料  Blog  发短消息  顶部
 
sanders_yao
版主
Rank: 7Rank: 7Rank: 7
or2 =333


UID 30286
精华 0
积分 2572
帖子 4774
金钱 2569 喜悦币
威望 0
人脉 3
阅读权限 100
注册 2004-7-23
来自 北京 菜户营
状态 在线
[推荐阅读] MYSQL数据库与phpmyadmin之间的问题(急等)
说明一下:
重定向的http头状态都是3xx
根据此原理 如果发现状态是3开头
那么就去检查http头中是否有重定向地址 也就是Location行
如果有这行就根据此行的地址进行跳转并抓取内容
为了避免循环跳转 一般都是让程序跳转n次之后结束并返回错误




最近写的一些代码都会在以下地址发布,有兴趣的来批:
http://www.phpx.com/happy/thread-131368-1-1.html
2007-4-10 02:08 PM#3
查看资料  Blog  发短消息  顶部
 
LuckLrj (中国php中的爱因斯坦)
版主
Rank: 7Rank: 7Rank: 7
老会员


UID 64836
精华 0
积分 2320
帖子 3115
金钱 2320 喜悦币
威望 0
人脉 0
阅读权限 100
注册 2005-6-19
状态 离线
[推荐阅读] 郁闷
用curl可以 以字符串形查看header内容,就可以找到转向的地址了。



学习,工作累了,请访问我的小站,娱乐一下。http://www.52sunny.net
2007-4-10 02:08 PM#4
查看资料  Blog  发短消息  顶部
 
strayly
注册会员
Rank: 2
初级会员



UID 59534
精华 0
积分 103
帖子 97
金钱 103 喜悦币
威望 0
人脉 0
阅读权限 20
注册 2004-12-4
状态 离线
[推荐阅读] mysql可以整除吗?
这样采起来比较慢



哈哈屋视频,快乐与你一起分享

2007-4-10 03:18 PM#5
查看资料  Blog  发短消息  QQ  顶部
 
happylmj
新手上路
Rank: 1



UID 90634
精华 0
积分 16
帖子 12
金钱 16 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2007-4-3
状态 离线
[推荐阅读] 我的代码怎样改一下,才能实现我的这个想法?
谢谢  学习一下  辛苦了
2007-4-11 03:31 PM#6
查看资料  发短消息  顶部
 
happylmj
新手上路
Rank: 1



UID 90634
精华 0
积分 16
帖子 12
金钱 16 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2007-4-3
状态 离线
[推荐阅读] 适合程序员的模版类(采用缓存)


QUOTE:
原帖由 LuckLrj 于 2007-4-10 02:08 PM 发表
用curl可以 以字符串形查看header内容,就可以找到转向的地址了。
请问CURL 如果查看得到新的地址  能给段代码吗,  curl没有学过  下面是我用CURL 采集页面的代码
$ch   =   curl_init   ();     
curl_setopt($ch,   CURLOPT_FOLLOWLOCATION,   1);   
curl_setopt($ch,   CURLOPT_RETURNTRANSFER,   1);   
curl_setopt   ($ch,   CURLOPT_URL,   "http://www.t7online.com/cgi-bin/citytext?SID=561711354848558debc54fe8d107dcf373f95&PROVIDER=anwendung&WMO=56171&LANG=cn");     
$content   =   curl_exec   ($ch);     
curl_close   ($ch);     
echo   $content;
2007-4-11 03:35 PM#7
查看资料  发短消息  顶部
     


  可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题 | 开通个人空间  


 




Powered by Discuz! 6.1.0  © 2001-2010 Comsenz Inc.
Processed in 0.025203 second(s), 6 queries

(冀ICP备05009913号) 管理员:sadly 邮箱/MSN: sadly@phpx.com QQ:824008(长隐) 清除 Cookies - - Archiver - WAP