免费注册 查看新帖 |

Chinaunix

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

perl lwp get web ..help [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-02-05 19:28 |只看该作者 |倒序浏览
怎樣可得分開他...抓出來

#!/usr/bin/perl -w
use LWP::Simple;
$url = 'http://genware.com.tw/bbs/viewtopic.php?p=2399&sid=800638bd024f058a9fd8951c53c33cad';
my $info = get $url;
if ($info =~ /(_info.php.*flash=/s) {$out = $1 ;}
##^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

print "$out\n";






如output 是這樣.
_info.php?id=6889&flash=8" target="_blank">http://www.flurl.com/flvplayer2.s
wf?video=http://www.flurl.com/flash_player_info.php?id=6886&flash=8
_info.php?id=6889&flash=8" target="_blank">http://www.flurl.com/flvplayer2.s
wf?video=http://www.flurl.com/flash_player_info.php?id=6887&flash=8_info.php?id=6889&flash=8" target="_blank">http://www.flurl.com/flvplayer2.s
wf?video=http://www.flurl.com/flash_player_info.php?id=6899&flash=8_info.php?id=6889&flash=8" target="_blank">http://www.flurl.com/flvplayer2.s
wf?video=http://www.flurl.com/flash_player_info.php?id=6801&flash=8



但我怎樣可得分開他...抓出來
如這樣.

_info.php?id=6889

_info.php?id=6899

_info.php?id=6801

_info.php?id=6889

_info.php?id=6889

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
2 [报告]
发表于 2007-02-05 22:18 |只看该作者
只要这一部分吗
原帖由 eviltom 于 2007-2-5 19:28 发表
怎樣可得分開他...抓出來
_info.php?id=6889

_info.php?id=6899

_info.php?id=6801

_info.php?id=6889

_info.php?id=6889  


如果是
匹配我是这样写的
  1. if ($info =~ /_info\.php\?id=[0-9]+/sg)
复制代码

论坛徽章:
0
3 [报告]
发表于 2007-02-05 23:01 |只看该作者

先謝.....

我把他改成這樣
print $info =~ /_info\.php\?id=[0-9]+/sg



但他只印一個出來
_info.php?id=209171_info.php?id=6889

可否把其他的也印出來?

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
4 [报告]
发表于 2007-02-05 23:23 |只看该作者
原帖由 eviltom 于 2007-2-5 23:01 发表
我把他改成這樣
print $info =~ /_info\.php\?id=[0-9]+/sg



但他只印一個出來
_info.php?id=209171_info.php?id=6889

可否把其他的也印出來?

这个$info =~ /_info\.php\?id=[0-9]+/sg  是放在 if 那里不是print 那里

论坛徽章:
0
5 [报告]
发表于 2007-02-05 23:32 |只看该作者
原帖由 eviltom 于 2007-2-5 19:28 发表
怎樣可得分開他...抓出來

#!/usr/bin/perl -w
use LWP::Simple;
...
if ($info =~ /(_info.php.*flash=/s) {
    $out = $1 ;
    #print "$out\n";
    if ($out =~ /info\.php\?id=\d+/sg) {
        print $out;
    }
}


--ulmer

论坛徽章:
0
6 [报告]
发表于 2007-02-06 01:16 |只看该作者

謝 !!!!!!!!!!!!!!!!!

$src_url = 'http%3A%2F%2Fliveu-11.vo.llnwd.net%2Fflurl%2Fma71%2Fnew_media3%2F2007%2F1%2F30%2
F123.mpg'
$src_url =~ s/%3A/:/g;
$src_url =~ s/%2F/\//g;

output 是:
http://liveu-11.vo.llnwd.net/flu ... 3/2007/1/30/123.mpg

$src_url =~ s/%3A/:/g;
$src_url =~ s/%2F/\//g;

可否再精一點regxp ?.   ...............再謝^^

论坛徽章:
0
7 [报告]
发表于 2007-02-06 19:00 |只看该作者
原帖由 eviltom 于 2007-2-6 01:16 发表
$src_url = 'http%3A%2F%2Fliveu-11.vo.llnwd.net%2Fflurl%2Fma71%2Fnew_media3%2F2007%2F1%2F30%2
F123.mpg'
$src_url =~ s/%3A/:/g;
$src_url =~ s/%2F/\//g;

output 是:
[url]http://liveu-11.vo.llnwd ...


Hi,

Why don't use CPAN module URI::Escape?
For example to unescape your $src_url (encoded URI):

  1.     use URI::Escape;
  2.     $src_url = 'http%3A%2F%2Fliveu-11.vo.llnwd.net%2Fflurl%2Fma71%2Fnew_media3%2F2007%2F1%2F30%2
  3. F123.mpg';
  4.     $real_url = uri_unescape($src_url);
  5.     print $real_url, "\n";

  6.     # --- out ---
  7.     # http://liveu-11.vo.llnwd.net/flurl/ma71/new_media3/2007/1/30/123.mpg

复制代码


-- ulmer

论坛徽章:
0
8 [报告]
发表于 2007-02-06 23:56 |只看该作者

thank a lot

why i not use cpan .....................
becasue i want get more in regxp XDDDDDDDDDDDDDDD
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP