Perl:分析页面,提取下载链接和文件对应的名称。
2014-09-14 20:18
351 查看
系统:Windows
语言:Perl
工具:Notepad++/cmd
目前要用PERL来分析一下页面。然后组群下载文件然后更名。
首先,rar文件连接在二级文件里。rar文件的名称是数字,其对应的中文名称在一级页面上对应二级页面的连接。我看了Perl的Cookbook,里面建议用模块。但是我打算用正则表达式自己写一个脚本。这里只用了简单的LWP::Simple模块。
技术:这里使用了正则表达式的$1,$2...来提取一行中需要的段。(需要注意的是:$1,$2...的命名空间只是它们上一个带有()的正则表达式。最近一个带有()的正则表达式已经失效了。除非即时赋值给变量。)
语言:Perl
工具:Notepad++/cmd
目前要用PERL来分析一下页面。然后组群下载文件然后更名。
首先,rar文件连接在二级文件里。rar文件的名称是数字,其对应的中文名称在一级页面上对应二级页面的连接。我看了Perl的Cookbook,里面建议用模块。但是我打算用正则表达式自己写一个脚本。这里只用了简单的LWP::Simple模块。
技术:这里使用了正则表达式的$1,$2...来提取一行中需要的段。(需要注意的是:$1,$2...的命名空间只是它们上一个带有()的正则表达式。最近一个带有()的正则表达式已经失效了。除非即时赋值给变量。)
#t.pl # to split out index url and rar page. use warnings; use LWP::Simple; sub getDownloadPage { my @lines=split("\n", $_[0]); my $line1=""; foreach my $line(@lines) { if ($line=~/<li class="itm">[^<]*<span> *[0-9]{4}-[0-9]{2}-[0-9]{2} *<\/span>[^<]*<a href="([^"> ]*)" *>([^<]*)</) { print $1," ",$2,"\n"; } } } my @indexes; unshift @indexes, "http://www.yingyu.com/stxz/chuzhong/zhongkao/"; # get index page. my $content=get($indexes[0]); my @hrefs=split "href=\"", $content; shift @hrefs; foreach $href(@hrefs) { if($href=~/(http:\/\/.*index[_0-9]*\.shtml)" *>[0-9]+/) { push @indexes, $1; } } #page download page and its relative Chinese name. foreach $index(@indexes) { $content=get($index); # my @pages=split "<li ", $content; # shift @pages; getDownloadPage($content); }
相关文章推荐
- jsp页面点击链接下载文件,跳出另存为
- android webview页面中的文件(apk,mp3或mp4,以及文本等)链接,选择被打开还是直接下载
- jqery 对页面中的文档下载和email链接增加对应的图片
- 利用perl提取web配置文件中的域名对应的路径
- python字符集分析,解决windows下FTPClient下载中文名称文件乱码
- jsp页面链接下载文件
- MFC项目使用webbrowser控件,点击载入的页面里的文件下载链接后导致程序的崩溃问题的解决方案
- jsp页面链接下载文件
- 提供一段JavaScript脚本以辅助迅雷下载页面中的所有pdf文件链接
- 静态页面中apk文件链接,被直接打开而不是下载
- 如何在我自己的web 项目的jsp页面中添加链接,直接让别人通过内网在我的电脑上下载文件
- ActiveX下载(JavaScript实现,含setup.bat文件,创建自解压文件,ActiveX控件存在判断与自定义下载页面)
- java文件上传和下载(原创,根据RFC1867分析得到)
- 文件下载时,只弹出下载框,不在页面打开的方法。
- 项目开发技巧(五):jsp页面链接中文文件,不能打开中文文件的问题
- 关于如何让页面同时下载多个文件的尝试
- asp的一个下载功能页面,就是把文件直接传给客户端的方式
- Intel平台下linux中 ELF文件动态链接的加载、解析及实例分析(二): 函数解析与卸载
- 在IHttpHandler中控制下载文件的类型和名称
- 使文件下载的自定义连接支持 FlashGet 的断点续传多线程链接下载! C#/ASP.Net 实现! 转