[学习]解析被隐藏的真实链接

笔记本/便携移动设备,手机平板等软硬件
回复
jinjiachen
帖子: 2148
注册时间: 2012-12-16 15:43
系统: debian

[学习]解析被隐藏的真实链接

#1

帖子 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等强大的软件来下载了,我想学习下如何解析这个真实地址,好像看过好多大神说过是用脚本,能解释下或者给我指个方向吗?谢谢
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: [学习]解析被隐藏的真实链接

#2

帖子 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";}
}
● 鸣学
jinjiachen
帖子: 2148
注册时间: 2012-12-16 15:43
系统: debian

Re: [学习]解析被隐藏的真实链接

#3

帖子 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:虽然看不懂)但是好像也没有语句是解析这个的,不明白是怎么实现的 :em06
jinjiachen
帖子: 2148
注册时间: 2012-12-16 15:43
系统: debian

Re: [学习]解析被隐藏的真实链接

#4

帖子 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本身就 ... 想问,这个证书哪来呢?
头像
mjp123
帖子: 703
注册时间: 2009-04-09 15:06

Re: [学习]解析被隐藏的真实链接

#5

帖子 mjp123 »

头像
lainme
论坛版主
帖子: 7805
注册时间: 2008-09-13 19:17
系统: Arch Linux (x86_64)
联系:

Re: [学习]解析被隐藏的真实链接

#6

帖子 lainme »

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本身就 ... 想问,这个证书哪来呢?
这里指的应该是HTTPS的证书,aria2是支持通过系统安装的证书来验证的。我看到aria2的windows版是编译了本地的SSL支持的,但是”实验性”的,不知道是不是和这个有关系。

不过比较奇怪的是,我在linux用aria2下这个链接,并没有被转向到HTTPS的地址,不知道你为什么会有这个问题。如果解决不了证书的问题,可以试试

aria2c --check-certificate=false http://www.imqq.com/download/?from=mainland
jinjiachen
帖子: 2148
注册时间: 2012-12-16 15:43
系统: debian

Re: [学习]解析被隐藏的真实链接

#7

帖子 jinjiachen »

lainme 写了:
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本身就 ... 想问,这个证书哪来呢?
这里指的应该是HTTPS的证书,aria2是支持通过系统安装的证书来验证的。我看到aria2的windows版是编译了本地的SSL支持的,但是”实验性”的,不知道是不是和这个有关系。

不过比较奇怪的是,我在linux用aria2下这个链接,并没有被转向到HTTPS的地址,不知道你为什么会有这个问题。如果解决不了证书的问题,可以试试

aria2c --check-certificate=false http://www.imqq.com/download/?from=mainland
在linux下直接就能下载了吗?我去试试
jinjiachen
帖子: 2148
注册时间: 2012-12-16 15:43
系统: debian

Re: [学习]解析被隐藏的真实链接

#8

帖子 jinjiachen »

mjp123 写了:http://dldir1.qq.com/qqfile/QQIntl/QQi_PC/QQIntl2.1.exe
你是要这个地址吗?
嗯嗯 就是这样的地址 我不是要这一个地址 我是想学习如何转换这类地址到你给的那样 能说下方法吗 谢谢
头像
lainme
论坛版主
帖子: 7805
注册时间: 2008-09-13 19:17
系统: Arch Linux (x86_64)
联系:

Re: [学习]解析被隐藏的真实链接

#9

帖子 lainme »

你在windows下可以尝试用

aria2c --check-certificate=false http://www.imqq.com/download/?from=mainland
头像
YeLee
论坛版主
帖子: 26406
注册时间: 2008-08-13 8:48
系统: Fundu i64
来自: 东海硇州,一双管钥。
联系:

Re: [学习]解析被隐藏的真实链接

#10

帖子 YeLee »

代码: 全选

curl -I 'http://www.imqq.com/download/?from=mainland' 2>/dev/null|grep -oP '(?<=location: )[^\s]*' 
:em01
◎当我站在道德的高度上俯视别人的时候,发现自己是多么渺小。
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关
头像
YeLee
论坛版主
帖子: 26406
注册时间: 2008-08-13 8:48
系统: Fundu i64
来自: 东海硇州,一双管钥。
联系:

Re: [学习]解析被隐藏的真实链接

#11

帖子 YeLee »

代码: 全选

wget  --spider 'http://www.imqq.com/download/?from=mainland'     
:em01
◎当我站在道德的高度上俯视别人的时候,发现自己是多么渺小。
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关
jinjiachen
帖子: 2148
注册时间: 2012-12-16 15:43
系统: debian

Re: [学习]解析被隐藏的真实链接

#13

帖子 jinjiachen »

YeLee 写了:

代码: 全选

curl -I 'http://www.imqq.com/download/?from=mainland' 2>/dev/null|grep -oP '(?<=location: )[^\s]*' 
:em01
首先谢谢你,-I参数是干什么用的?能解析出地址,我man了下,没看懂,后面的grep -oP我也没用过,不是很懂,有待研究,昨天在学sed和awk,我自己编了个,不要见笑。curl -I 'http://www.imqq.com/download/?from=mainland' |grep locat |sed 's/location: //'
:em09
jinjiachen
帖子: 2148
注册时间: 2012-12-16 15:43
系统: debian

Re: [学习]解析被隐藏的真实链接

#14

帖子 jinjiachen »

YeLee 写了:

代码: 全选

wget  --spider 'http://www.imqq.com/download/?from=mainland'     
:em01
spider?蜘蛛?试了下,没有下载啊
jinjiachen
帖子: 2148
注册时间: 2012-12-16 15:43
系统: debian

Re: [学习]解析被隐藏的真实链接

#15

帖子 jinjiachen »

-I参数是返回网页头部的意思,不过不是很懂什么叫头部,这个参数又在什么情况下用呢?
回复