一个从指定网页地址批量下载相关类型文件的脚本
-
- 帖子: 105
- 注册时间: 2008-11-03 10:06
一个从指定网页地址批量下载相关类型文件的脚本
比如这个网页上有大批rar类型的文件 提供了超级连接 可供直接下载 无登录等限制
当然 也可以是PDF阿 什么的 我想写一个脚本 用wget批量下载 但用什么判断这些页面上的东东呢?
望有高手指条明路
当然 也可以是PDF阿 什么的 我想写一个脚本 用wget批量下载 但用什么判断这些页面上的东东呢?
望有高手指条明路
-
- 帖子: 105
- 注册时间: 2008-11-03 10:06
Re: 一个从指定网页地址批量下载相关类型文件的脚本
给点提示都行
- O_O_BOT
- 帖子: 2461
- 注册时间: 2009-05-20 19:32
Re: 一个从指定网页地址批量下载相关类型文件的脚本
分析 href -> grep -> ok
irc 聊天室
ubuntu-cn 的irc 频道为
irc.ubuntu.com 8001 #ubuntu-cn
UTF8编码 可用 irssi xchat pidgin weechat 登录
http://webchat.freenode.net/?channels=ubuntu-cn
[url]irc://irc.freenode.net/ubuntu-cn[/url]
ubuntu-cn 的irc 频道为
irc.ubuntu.com 8001 #ubuntu-cn
UTF8编码 可用 irssi xchat pidgin weechat 登录
http://webchat.freenode.net/?channels=ubuntu-cn
[url]irc://irc.freenode.net/ubuntu-cn[/url]
- eexpress
- 帖子: 58428
- 注册时间: 2005-08-14 21:55
- 来自: 长沙
Re: 一个从指定网页地址批量下载相关类型文件的脚本
代码: 全选
cat fetch-link.pl
#!/usr/bin/perl
use LWP::UserAgent;
my $url=shift;
#my $url='http://forum.ubuntu.org.cn/search.php?search_id=newposts';
#my $url='http://doc.linuxpk.com/2970.html';
my $ua=new LWP::UserAgent();
my $re= $ua->get($url);
die if (!$re->is_success);
my $html= $re->content;
#得到页面中所有链接
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";}
}
● 鸣学
-
- 帖子: 105
- 注册时间: 2008-11-03 10:06
-
- 帖子: 105
- 注册时间: 2008-11-03 10:06
Re: 一个从指定网页地址批量下载相关类型文件的脚本
不过很感谢EE
perl 的LWP 模块 进行页面分析 前面那段网页内容的获取没多大问题
就是后面那些正则分析 提取需要的内容。。哎 真是想破脑袋
perl 的LWP 模块 进行页面分析 前面那段网页内容的获取没多大问题
就是后面那些正则分析 提取需要的内容。。哎 真是想破脑袋
- O_O_BOT
- 帖子: 2461
- 注册时间: 2009-05-20 19:32
Re: 一个从指定网页地址批量下载相关类型文件的脚本
要shell的没
上次由 O_O_BOT 在 2009-08-28 1:06,总共编辑 1 次。
irc 聊天室
ubuntu-cn 的irc 频道为
irc.ubuntu.com 8001 #ubuntu-cn
UTF8编码 可用 irssi xchat pidgin weechat 登录
http://webchat.freenode.net/?channels=ubuntu-cn
[url]irc://irc.freenode.net/ubuntu-cn[/url]
ubuntu-cn 的irc 频道为
irc.ubuntu.com 8001 #ubuntu-cn
UTF8编码 可用 irssi xchat pidgin weechat 登录
http://webchat.freenode.net/?channels=ubuntu-cn
[url]irc://irc.freenode.net/ubuntu-cn[/url]
- eexpress
- 帖子: 58428
- 注册时间: 2005-08-14 21:55
- 来自: 长沙
-
- 帖子: 105
- 注册时间: 2008-11-03 10:06
Re: 一个从指定网页地址批量下载相关类型文件的脚本
O_O_BOT, 的 有点玩不明白
./脚本 目标地址 ? 这样运行么? 提示输入Inpu regex 我输入 *.rar 只能下载主页
我现在根据ee的办法 现用perl提取到指定页面的内容 让脚本建个wget的下载list 把指定页面的 链接分析 放到 list中 然后调用wget下载
现在问题就是怎么把指定页面内容里的 <a href= > </a> 中的 指定类型给"正则"出来
对了 我怎么在perl脚本中调用bash里的程序阿?
./脚本 目标地址 ? 这样运行么? 提示输入Inpu regex 我输入 *.rar 只能下载主页
我现在根据ee的办法 现用perl提取到指定页面的内容 让脚本建个wget的下载list 把指定页面的 链接分析 放到 list中 然后调用wget下载
现在问题就是怎么把指定页面内容里的 <a href= > </a> 中的 指定类型给"正则"出来
对了 我怎么在perl脚本中调用bash里的程序阿?
- eexpress
- 帖子: 58428
- 注册时间: 2005-08-14 21:55
- 来自: 长沙
Re: 一个从指定网页地址批量下载相关类型文件的脚本
调用啊。就是``啊
比如
比如
代码: 全选
`wget $myurl`;
你试试这注释掉的那句,就知道了。<a href= > </a> 中的 指定类型给"正则"出来
while($html=~m{<a href=(["'])(.*?)\1.*?>(<.*?/>)*(.*?)</a>}gsi){
#print "$2\t--->$4\n";
● 鸣学
-
- 帖子: 877
- 注册时间: 2007-08-25 10:37
Re: 一个从指定网页地址批量下载相关类型文件的脚本
cat fetch-link.pl
这个是什么东东?我这里木有fetch-link.pl,怎么办?
这个是什么东东?我这里木有fetch-link.pl,怎么办?
-
- 帖子: 105
- 注册时间: 2008-11-03 10:06
Re: 一个从指定网页地址批量下载相关类型文件的脚本
$url=http://www.ouravr.com/bbs/bbs_content.j ... bs_id=1000
比如这个网址
#print "$2\t--->$4\n";
解除注释后 运行
就是没有 下载的那些文件的链接 都是些无关紧要的
我仔细看了下 发现你的正则好像要改下 找到的全部都是 像这样格式的:
<br><a href=xxxxxx>xxxxxr</a>
而页面上放出的下载连接源码 前面都带有http
<br><a href=http://download.ourdev.cn/bbs_upload245 ... 用资料.rar</a>
只要前面带http的都分析不出来
$2 和$4 对应的是哪段正则的?
悲伤的问一下 为啥我的shell 里显示 $4时都这样子?:���
比如这个网址
#print "$2\t--->$4\n";
解除注释后 运行
就是没有 下载的那些文件的链接 都是些无关紧要的
我仔细看了下 发现你的正则好像要改下 找到的全部都是 像这样格式的:
<br><a href=xxxxxx>xxxxxr</a>
而页面上放出的下载连接源码 前面都带有http
<br><a href=http://download.ourdev.cn/bbs_upload245 ... 用资料.rar</a>
只要前面带http的都分析不出来
$2 和$4 对应的是哪段正则的?
悲伤的问一下 为啥我的shell 里显示 $4时都这样子?:���
- eexpress
- 帖子: 58428
- 注册时间: 2005-08-14 21:55
- 来自: 长沙
Re: 一个从指定网页地址批量下载相关类型文件的脚本
就是模式匹配的。那些()嘛。几个()里面的。就是$digit 表示的。
给你一个我整理的变量说明。
给你一个我整理的变量说明。
- 附件
-
- perl内置变量的列表.html.tar.gz
- (1.81 KiB) 已下载 51 次
● 鸣学
-
- 帖子: 105
- 注册时间: 2008-11-03 10:06
Re: 一个从指定网页地址批量下载相关类型文件的脚本
哦 有点眉目了 重点就是正则 你那个开头
["'] 是针对 这样的形式 "xxxxx" 'xxxx' 才匹配 有些连接没有"" 和''
后面的那个(<.*?/>)*(.*?)</a> 可以去掉 我只需要路径 标识在shell里显示乱码估计是网页上编码的问题
最后的那个gsi啥意思阿
["'] 是针对 这样的形式 "xxxxx" 'xxxx' 才匹配 有些连接没有"" 和''
后面的那个(<.*?/>)*(.*?)</a> 可以去掉 我只需要路径 标识在shell里显示乱码估计是网页上编码的问题
最后的那个gsi啥意思阿
- O_O_BOT
- 帖子: 2461
- 注册时间: 2009-05-20 19:32
Re: 一个从指定网页地址批量下载相关类型文件的脚本
我用的是grep 的正则 那
\.rar 罗
\.rar 罗
irc 聊天室
ubuntu-cn 的irc 频道为
irc.ubuntu.com 8001 #ubuntu-cn
UTF8编码 可用 irssi xchat pidgin weechat 登录
http://webchat.freenode.net/?channels=ubuntu-cn
[url]irc://irc.freenode.net/ubuntu-cn[/url]
ubuntu-cn 的irc 频道为
irc.ubuntu.com 8001 #ubuntu-cn
UTF8编码 可用 irssi xchat pidgin weechat 登录
http://webchat.freenode.net/?channels=ubuntu-cn
[url]irc://irc.freenode.net/ubuntu-cn[/url]