分页: 1 / 1
[学习]解析被隐藏的真实链接
发表于 : 2014-01-03 10:48
由 jinjiachen
<a href="
http://www.imqq.com/download/?from=mainland" class="btn btn-large btn-download btntop" type="button"> Get QQ International </a>
以上这个是个qq的下载链接,点上去的话下载软件会自动解析,并且开始下载,可是复制链接的话就不能复制到真实链接,这样就不能用wget aria2等强大的软件来下载了,我想学习下如何解析这个真实地址,好像看过好多大神说过是用脚本,能解释下或者给我指个方向吗?谢谢
Re: [学习]解析被隐藏的真实链接
发表于 : 2014-01-03 11:09
由 eexpress
很老的一个脚本。
代码: 全选
● cat /home/eexp/bin/Hold-Script-Dir/fetch-link.pl
#!/usr/bin/perl
use LWP::UserAgent;
my $url=shift;
my $ua=new LWP::UserAgent();
my $re= $ua->get($url);
die if (!$re->is_success);
my $html= $re->content;
#print $html;
#得到页面中所有链接
while($html=~m{<a .*?href=(["'])(.*?)\1.*?>(<.*?/>)*(.*?)</a>}gsi){
print "$2\t--->$4\n";
#my $l=$2; my $t=$4;if($l=~/^http/ and $l!~/com\/$|cn\/$/ and $t!~/^</){print "$l\t--->$t\n";}
}
Re: [学习]解析被隐藏的真实链接
发表于 : 2014-01-03 14:10
由 jinjiachen
eexpress 写了:很老的一个脚本。
代码: 全选
● cat /home/eexp/bin/Hold-Script-Dir/fetch-link.pl
#!/usr/bin/perl
use LWP::UserAgent;
my $url=shift;
my $ua=new LWP::UserAgent();
my $re= $ua->get($url);
die if (!$re->is_success);
my $html= $re->content;
#print $html;
#得到页面中所有链接
while($html=~m{<a .*?href=(["'])(.*?)\1.*?>(<.*?/>)*(.*?)</a>}gsi){
print "$2\t--->$4\n";
#my $l=$2; my $t=$4;if($l=~/^http/ and $l!~/com\/$|cn\/$/ and $t!~/^</){print "$l\t--->$t\n";}
}
首先谢谢ee,可是您这个好像是perl脚本吧?有点高级呢,对于我来说有点困难,我在想能不能用sed awk,这种来实现?我的第一步还没那么高,我现在就是想,能从www.imqq.com/download/?from=mainland里弄出真实地址,哪怕手动也行,一般的链接形式不是这样的嘛:www.***.com/test.zip.这种就可以直接下载,我能通过什么方式把它转换成可以直接下的,刚刚大致看了你的(PS:虽然看不懂)但是好像也没有语句是解析这个的,不明白是怎么实现的

Re: [学习]解析被隐藏的真实链接
发表于 : 2014-01-03 16:45
由 jinjiachen
直接用aria2c 下载链接,出现的是如下:
C:\Users\jinjiac>aria2c
http://www.imqq.com/download/?from=mainland
2014-01-03 16:42:55.784531 WARN - You may encounter the certificate verification
error with HTTPS server. See --ca-certificate and --check-certificate option.
我突然意识到,可能http://
www.imqq.com/download/?from=mainland本身就 ... 想问,这个证书哪来呢?
Re: [学习]解析被隐藏的真实链接
发表于 : 2014-01-03 16:52
由 mjp123
Re: [学习]解析被隐藏的真实链接
发表于 : 2014-01-03 17:16
由 lainme
这里指的应该是HTTPS的证书,aria2是支持通过系统安装的证书来验证的。我看到aria2的windows版是编译了本地的SSL支持的,但是”实验性”的,不知道是不是和这个有关系。
不过比较奇怪的是,我在linux用aria2下这个链接,并没有被转向到HTTPS的地址,不知道你为什么会有这个问题。如果解决不了证书的问题,可以试试
aria2c --check-certificate=false
http://www.imqq.com/download/?from=mainland
Re: [学习]解析被隐藏的真实链接
发表于 : 2014-01-04 13:41
由 jinjiachen
lainme 写了:
这里指的应该是HTTPS的证书,aria2是支持通过系统安装的证书来验证的。我看到aria2的windows版是编译了本地的SSL支持的,但是”实验性”的,不知道是不是和这个有关系。
不过比较奇怪的是,我在linux用aria2下这个链接,并没有被转向到HTTPS的地址,不知道你为什么会有这个问题。如果解决不了证书的问题,可以试试
aria2c --check-certificate=false
http://www.imqq.com/download/?from=mainland
在linux下直接就能下载了吗?我去试试
Re: [学习]解析被隐藏的真实链接
发表于 : 2014-01-04 13:48
由 jinjiachen
嗯嗯 就是这样的地址 我不是要这一个地址 我是想学习如何转换这类地址到你给的那样 能说下方法吗 谢谢
Re: [学习]解析被隐藏的真实链接
发表于 : 2014-01-06 13:23
由 lainme
你在windows下可以尝试用
aria2c --check-certificate=false
http://www.imqq.com/download/?from=mainland
Re: [学习]解析被隐藏的真实链接
发表于 : 2014-01-06 13:50
由 YeLee
代码: 全选
curl -I 'http://www.imqq.com/download/?from=mainland' 2>/dev/null|grep -oP '(?<=location: )[^\s]*'

Re: [学习]解析被隐藏的真实链接
发表于 : 2014-01-06 13:56
由 YeLee
代码: 全选
wget --spider 'http://www.imqq.com/download/?from=mainland'

Re: [学习]解析被隐藏的真实链接
发表于 : 2014-01-06 14:03
由 photor
Re: [学习]解析被隐藏的真实链接
发表于 : 2014-01-06 22:53
由 jinjiachen
YeLee 写了:代码: 全选
curl -I 'http://www.imqq.com/download/?from=mainland' 2>/dev/null|grep -oP '(?<=location: )[^\s]*'

首先谢谢你,-I参数是干什么用的?能解析出地址,我man了下,没看懂,后面的grep -oP我也没用过,不是很懂,有待研究,昨天在学sed和awk,我自己编了个,不要见笑。curl -I '
http://www.imqq.com/download/?from=mainland' |grep locat |sed 's/location: //'

Re: [学习]解析被隐藏的真实链接
发表于 : 2014-01-06 23:08
由 jinjiachen
YeLee 写了:代码: 全选
wget --spider 'http://www.imqq.com/download/?from=mainland'

spider?蜘蛛?试了下,没有下载啊
Re: [学习]解析被隐藏的真实链接
发表于 : 2014-01-06 23:19
由 jinjiachen
-I参数是返回网页头部的意思,不过不是很懂什么叫头部,这个参数又在什么情况下用呢?