免费注册 查看新帖 |

Chinaunix

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

LWP怎么解决随机url验证?[已解决] [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-09-27 12:41 |只看该作者 |倒序浏览
比方说这样一个网页,每次查询后得到一个下载连接,类似http://www.xxx.com/down.php?id=x&key=1234567890abcdef这样,关键是后面这个随机数是每次请求后产生的,在浏览器里面点击链接即可下载,可是LWP如何搞定?

网站应该是在查询的时候产生的随机数,记录下下来,在收到下载请求的时候进行验证,不知道我说的对不对?

我现在用UserAgent->post发送查询请求,得到返回的网页并取出了下载链接,可是用这个链接调用get方法无法正确下载,哪位兄弟能提供一下思路么?

[ 本帖最后由 byosoku5cm 于 2007-9-27 16:02 编辑 ]

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
2 [报告]
发表于 2007-09-27 12:44 |只看该作者
你得搞明白来龙去脉才行。
别瞎猜。

论坛徽章:
0
3 [报告]
发表于 2007-09-27 13:47 |只看该作者
不好意思,主要就是不明白如何服务器做了什么。或许我上面没说明白,比如这个网站,http://www.jpwy.net/gc/,用LWP从上面下载歌词,能做到么?

难道要用ethereal之类的软件抓包下来看么?这个我也不大会,先看看吧。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
4 [报告]
发表于 2007-09-27 13:51 |只看该作者
当然可以。
LWP 就是个浏览器,你把浏览器做过的动作挨个儿用 LWP 做一遍就可以了。

论坛徽章:
0
5 [报告]
发表于 2007-09-27 14:06 |只看该作者
比如下面的代码
$ua = LWP::UserAgent->new();
$resp = $ua->post("http://www.jpwy.net/gc/search.php", { "song" => "angelus"});
$content = $resp->content;
我从$content里面滤出歌词的下载链接,然后用$resp = $ua->get($url);得到的结果是被转向后的网站首页。

可能我还是没说清楚,你可以打开这个网站,搜一下歌词,得到的lrc歌词下载链接你点击可以下载,复制链接到地址栏就会被重定向到首页,用LWP我也只能模拟成这样,如何模拟这个点击过程发生的事件呢?

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
6 [报告]
发表于 2007-09-27 14:09 |只看该作者
用 Wireshark 抓包是很管用的。
这样可以很清楚地看到你的浏览器和 server 之间的 HTTP 交互过程。
$ua = LWP::UserAgent->new();
改成
$ua = LWP::UserAgent->new( cookie_jar => {} );
试试吧。不一定行。主要还得你自己去研究。

论坛徽章:
0
7 [报告]
发表于 2007-09-27 14:22 |只看该作者
单改这个好象没用,你的意思是不是还可能跟cookie相关?LWP才看到第六章,没办法,继续向第11章进发,看书去了。英文书真费劲啊

谢谢BZ,装个wireshark试试,刚知道ethereal改名叫wireshark了。

论坛徽章:
0
8 [报告]
发表于 2007-09-27 15:56 |只看该作者

搞定,THX

按照BZ的建议查了一下wireshark的用法,抓包对比后,发现成功的请求中http报文头部多了一些内容,最后发现是Referer:在起作用。

改为$ua->get($url, 'Referer' => 'http://www.jpwy.net/gc/search.php');后下载成功。

原来是通过引用下载链接的来源来验证的,我原先猜错了

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
9 [报告]
发表于 2007-09-27 16:53 |只看该作者
早就跟你说了,别瞎猜。
一抓包,就什么都明白了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP