当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 20 篇帖子 ]  前往页数 1, 2  下一页
作者 内容
1 楼 
 文章标题 : 一个从指定网页地址批量下载相关类型文件的脚本
帖子发表于 : 2009-08-26 23:53 

注册: 2008-11-03 10:06
帖子: 105
送出感谢: 1
接收感谢: 0 次
比如这个网页上有大批rar类型的文件 提供了超级连接 可供直接下载 无登录等限制

当然 也可以是PDF阿 什么的 我想写一个脚本 用wget批量下载 但用什么判断这些页面上的东东呢?

望有高手指条明路


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 一个从指定网页地址批量下载相关类型文件的脚本
帖子发表于 : 2009-08-26 23:55 

注册: 2008-11-03 10:06
帖子: 105
送出感谢: 1
接收感谢: 0 次
给点提示都行


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 一个从指定网页地址批量下载相关类型文件的脚本
帖子发表于 : 2009-08-27 8:12 
头像

注册: 2009-05-20 19:32
帖子: 2462
送出感谢: 0 次
接收感谢: 2
分析 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
irc://irc.freenode.net/ubuntu-cn


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 一个从指定网页地址批量下载相关类型文件的脚本
帖子发表于 : 2009-08-27 9:34 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 272
代码:
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";}
}


_________________
● 鸣学


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 一个从指定网页地址批量下载相关类型文件的脚本
帖子发表于 : 2009-08-27 18:22 

注册: 2008-11-03 10:06
帖子: 105
送出感谢: 1
接收感谢: 0 次
代码:
$html=~m{<a href=(["'])(.*?)\1.*?>(<.*?/>)*(.*?)</a>}gsi
#这个正则下来有哪几个变量赋值了?


代码:
$l=~/^http/ and $l!~/com\/$|cn\/$/ and $t!~/^</
#这个是去掉地址中的http com cn 然后找到匹配$l 和$t 的东西?


这两个正则 。。我实在是看不明白


页首
 用户资料  
 
6 楼 
 文章标题 : Re: 一个从指定网页地址批量下载相关类型文件的脚本
帖子发表于 : 2009-08-27 19:19 

注册: 2008-11-03 10:06
帖子: 105
送出感谢: 1
接收感谢: 0 次
不过很感谢EE

perl 的LWP 模块 进行页面分析 前面那段网页内容的获取没多大问题

就是后面那些正则分析 提取需要的内容。。哎 真是想破脑袋


页首
 用户资料  
 
7 楼 
 文章标题 : Re: 一个从指定网页地址批量下载相关类型文件的脚本
帖子发表于 : 2009-08-27 21:07 
头像

注册: 2009-05-20 19:32
帖子: 2462
送出感谢: 0 次
接收感谢: 2
要shell的没


_________________
irc 聊天室
ubuntu-cn 的irc 频道为
irc.ubuntu.com 8001 #ubuntu-cn
UTF8编码 可用 irssi xchat pidgin weechat 登录

http://webchat.freenode.net/?channels=ubuntu-cn
irc://irc.freenode.net/ubuntu-cn


最后由 O_O_BOT 编辑于 2009-08-28 1:06,总共编辑了 1 次

页首
 用户资料  
 
8 楼 
 文章标题 : Re: 一个从指定网页地址批量下载相关类型文件的脚本
帖子发表于 : 2009-08-27 21:22 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 272
perl 的正则,天生强大,而且难懂。 :em04


_________________
● 鸣学


页首
 用户资料  
 
9 楼 
 文章标题 : Re: 一个从指定网页地址批量下载相关类型文件的脚本
帖子发表于 : 2009-08-27 21:59 

注册: 2008-11-03 10:06
帖子: 105
送出感谢: 1
接收感谢: 0 次
O_O_BOT, 的 有点玩不明白

./脚本 目标地址 ? 这样运行么? 提示输入Inpu regex 我输入 *.rar 只能下载主页


我现在根据ee的办法 现用perl提取到指定页面的内容 让脚本建个wget的下载list 把指定页面的 链接分析 放到 list中 然后调用wget下载

现在问题就是怎么把指定页面内容里的 <a href= > </a> 中的 指定类型给"正则"出来

对了 我怎么在perl脚本中调用bash里的程序阿?


页首
 用户资料  
 
10 楼 
 文章标题 : Re: 一个从指定网页地址批量下载相关类型文件的脚本
帖子发表于 : 2009-08-27 22:46 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 272
调用啊。就是``啊
比如
代码:
`wget $myurl`;


引用:
<a href= > </a> 中的 指定类型给"正则"出来


你试试这注释掉的那句,就知道了。
引用:
while($html=~m{<a href=(["'])(.*?)\1.*?>(<.*?/>)*(.*?)</a>}gsi){
#print "$2\t--->$4\n";


_________________
● 鸣学


页首
 用户资料  
 
11 楼 
 文章标题 : Re: 一个从指定网页地址批量下载相关类型文件的脚本
帖子发表于 : 2009-08-27 23:03 

注册: 2007-08-25 10:37
帖子: 877
送出感谢: 0 次
接收感谢: 0 次
cat fetch-link.pl
这个是什么东东?我这里木有fetch-link.pl,怎么办?


页首
 用户资料  
 
12 楼 
 文章标题 : Re: 一个从指定网页地址批量下载相关类型文件的脚本
帖子发表于 : 2009-08-27 23:24 

注册: 2008-11-03 10:06
帖子: 105
送出感谢: 1
接收感谢: 0 次
$url=http://www.ouravr.com/bbs/bbs_content.jsp?bbs_sn=784608&bbs_page_no=1&bbs_id=1000
比如这个网址

#print "$2\t--->$4\n";
解除注释后 运行

就是没有 下载的那些文件的链接 都是些无关紧要的
我仔细看了下 发现你的正则好像要改下 找到的全部都是 像这样格式的:
<br><a href=xxxxxx>xxxxxr</a>

而页面上放出的下载连接源码 前面都带有http
<br><a href=http://download.ourdev.cn/bbs_upload245682/files_8/armok01166084.rar>cvavr_应用资料.rar</a>

只要前面带http的都分析不出来

$2 和$4 对应的是哪段正则的?
悲伤的问一下 为啥我的shell 里显示 $4时都这样子?:���


页首
 用户资料  
 
13 楼 
 文章标题 : Re: 一个从指定网页地址批量下载相关类型文件的脚本
帖子发表于 : 2009-08-27 23:27 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 272
就是模式匹配的。那些()嘛。几个()里面的。就是$digit 表示的。


给你一个我整理的变量说明。


附件:
perl内置变量的列表.html.tar.gz [1.81 KiB]
被下载 27 次


_________________
● 鸣学
页首
 用户资料  
 
14 楼 
 文章标题 : Re: 一个从指定网页地址批量下载相关类型文件的脚本
帖子发表于 : 2009-08-27 23:55 

注册: 2008-11-03 10:06
帖子: 105
送出感谢: 1
接收感谢: 0 次
哦 有点眉目了 重点就是正则 你那个开头
["'] 是针对 这样的形式 "xxxxx" 'xxxx' 才匹配 有些连接没有"" 和''

后面的那个(<.*?/>)*(.*?)</a> 可以去掉 我只需要路径 标识在shell里显示乱码估计是网页上编码的问题

最后的那个gsi啥意思阿


页首
 用户资料  
 
15 楼 
 文章标题 : Re: 一个从指定网页地址批量下载相关类型文件的脚本
帖子发表于 : 2009-08-27 23:59 
头像

注册: 2009-05-20 19:32
帖子: 2462
送出感谢: 0 次
接收感谢: 2
:em20 我用的是grep 的正则 那
\.rar 罗


_________________
irc 聊天室
ubuntu-cn 的irc 频道为
irc.ubuntu.com 8001 #ubuntu-cn
UTF8编码 可用 irssi xchat pidgin weechat 登录

http://webchat.freenode.net/?channels=ubuntu-cn
irc://irc.freenode.net/ubuntu-cn


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 20 篇帖子 ]  前往页数 1, 2  下一页

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 3 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译