免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 39300 | 回复: 4
打印 上一主题 下一主题

请教http 302错误的解决办法! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-03-18 14:53 |只看该作者 |倒序浏览
本帖最后由 kitsilence 于 2011-03-18 15:04 编辑

我用perl调用Google引擎进行搜索,用的是重构url的做法。程序的意图是采用LWP::UserAgent

根据url去抓取保存其相对应的网页。请看如下代码:

但这样做的话后台只会报 302错误,不解中...诚心求教!
  1. use strict;
  2. require LWP::UserAgent;

  3. my $url= "http://www.google.com.hk/search?hl=zh-CN&source=hp&q=LWP%3A%3AUserAgent&meta=&aq=o&aqi=&aql=&oq=";

  4. my $ua = LWP::UserAgent->new;
  5. $ua->timeout(10);
  6. $ua->env_proxy;

  7. my $response = $ua->get($url);

  8. if ($response->is_success) {
  9.      print $response->decoded_content;  # or whatever
  10. }
  11. else {
  12.      die $response->status_line;
  13. }
复制代码
补充一下:代码里的 $url 是在google首页输入LWP::UserAgent搜索后出现在url栏里的字窜,这个应该不难理解

论坛徽章:
0
2 [报告]
发表于 2011-03-18 15:37 |只看该作者
回复 1# kitsilence


    你需要设置cookie
  1. my $cookie_jar=HTTP::Cookies->new(file =>"google.txt",autosave => 1);
  2. $ua->cookie_jar($cookie_jar);
复制代码

论坛徽章:
0
3 [报告]
发表于 2011-03-18 16:03 |只看该作者
回复 2# bernana


  你解释下为什么这么做行吗,嗯,我copy了这两行代码加到我们的代码里,

  在源码HTTP/Cookies文件夹里建了google.txt,程序运行返回变成了403 Forbidden了

论坛徽章:
1
摩羯座
日期:2014-12-29 15:59:36
4 [报告]
发表于 2011-03-18 17:16 |只看该作者
因为没有cookie 所以google让你302重定向
可在请求前加一句
$ua->cookie_jar(HTTP::Cookies->new('file'=>'cookie.lwp','autosave'=>1));
这样不会重定向了,但是google又让你403了
因为perl默认的User-Agent是libwww-perl/5.836,google不认为这是合法的User-Agent
再加一句
$ua->agent('Mozilla/5.0');
或者
$ua->agent('');
就ok了

论坛徽章:
0
5 [报告]
发表于 2011-03-21 14:09 |只看该作者
回复 4# ziyunfei


    呵呵~ 非常感谢!受教了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP