当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 3 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 学校 ftp 搜索
帖子发表于 : 2008-11-07 11:35 

注册: 2006-07-09 12:22
帖子: 1331
地址: 南京
送出感谢: 0 次
接收感谢: 1
觉得打开 firefox 再去歪歪搜索有点麻烦,于是写了此脚本。NUAA 校友应该可以用。

Notes:
  • 多关键字支持,但某一个关键字不能由中文与非中文字混合构成。
  • 学校 ftp 搜索页面为 gbk,先用 iconv 转成 utf-8。
  • URL 中字编码问题由 od 和 awk 组合处理了,就是十六进制的再排序。

内容:
代码:
#!/bin/bash
#
# Function: Search from http://ftp.nuaa.edu.cn
# Author: aBiNg <cn.fyodor@gmail.com>
# Date: 2008.11.06

# NOTES:
# + ARGUMENTS can't include strings concatenated by Chinese characters and "[0-9A-Za-z]+".

[ $# -eq 0 ] && exit

for((i=1;i<=$#;i++))
do
    eval VAR='$'$i
    if expr "$VAR" : "[0-9A-Za-z.-_]\+" &> /dev/null
    then
        ARRAY[$i]="$VAR"
    else
        SECT=$((2*${#VAR}))
        ARRAY[$i]=`echo "$VAR" | iconv -f utf-8 -t gbk | od -t x | tr '\n' ' ' | \
        awk '\
        {
            $1=""
            gsub(/[ ]+/,"",$0)
            for(j=1;j<='$SECT';j++){
                if(j%4==1){
                    k=2*j+5
                }
                printf("%%%s",substr($0,k,2))
                k-=2
            }
        }'`
    fi
done

DECODED=`echo ${ARRAY[@]} | tr ' ' '+'`

URL="http://ftp.nuaa.edu.cn/cgi-bin/parker/search?String=${DECODED}&t=0&r=all&s=ftp"
TMPDIR="/tmp/nuaa"
TMPFILE=${TMPDIR}/${DECODED}.html

[ ! -d $TMPDIR ] && mkdir -p $TMPDIR

wget -q -O $TMPFILE $URL &> /dev/null

if file $TMPFILE | grep HTML &> /dev/null
then
    iconv -f gbk -t utf-8 $TMPFILE | \
    sed '/^ <[^>]*>\/.*/d' | \
    sed -ne '/.*HREF="ftp:\/\//s!.*@\([^>]*\)">[<>b]*\([^<]*\)<.*!\2\n\1\n!p' | \
    more
fi


举例(脚本取名 nuaa_ftp):
1、
代码:
$ nuaa_ftp 李尔王

引用:
ftp3.nuaa.edu.cn
202.119.65.3/

(2008)李尔王-jiajia/
202.119.65.3/--Upload/(2008)李尔王-jiajia/

[李尔王].King.Lear.2008.TV.DVDRip.XviD-HAGGiS.cd1.avi
202.119.65.3/--Upload/(2008)李尔王-jiajia/[李尔王].King.Lear.2008.TV.DVDRip.XviD-HAGGiS.cd1.avi

[李尔王].King.Lear.2008.TV.DVDRip.XviD-HAGGiS.cd1.cn.srt
202.119.65.3/--Upload/(2008)李尔王-jiajia/[李尔王].King.Lear.2008.TV.DVDRip.XviD-HAGGiS.cd1.cn.srt

[李尔王].King.Lear.2008.TV.DVDRip.XviD-HAGGiS.cd1.en.srt
202.119.65.3/--Upload/(2008)李尔王-jiajia/[李尔王].King.Lear.2008.TV.DVDRip.XviD-HAGGiS.cd1.en.srt

[李尔王].King.Lear.2008.TV.DVDRip.XviD-HAGGiS.cd2.avi
202.119.65.3/--Upload/(2008)李尔王-jiajia/[李尔王].King.Lear.2008.TV.DVDRip.XviD-HAGGiS.cd2.avi

[李尔王].King.Lear.2008.TV.DVDRip.XviD-HAGGiS.cd2.cn.srt
202.119.65.3/--Upload/(2008)李尔王-jiajia/[李尔王].King.Lear.2008.TV.DVDRip.XviD-HAGGiS.cd2.cn.srt

[李尔王].King.Lear.2008.TV.DVDRip.XviD-HAGGiS.cd2.en.srt
202.119.65.3/--Upload/(2008)李尔王-jiajia/[李尔王].King.Lear.2008.TV.DVDRip.XviD-HAGGiS.cd2.en.srt


2、
代码:
$ nuaa_ftp wall.E rmvb

引用:
ftp2.nuaa.edu.cn
202.119.65.4/

影视帝国(bbs.cnxp.com).机器人总动员(听译).Wall.E.2008.DVDSCR.rmvb
202.119.65.4/---电影专区/++13%20动画片/(2008)机器人总动员(WALL·E)%20(皮克斯&迪尼)%20-美国动画/影视帝国bbs.cnxp.com).机器人总动员(听译).Wall.E.2008.DVDSCR.rmvb


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 学校 ftp 搜索
帖子发表于 : 2008-11-07 12:04 
头像

注册: 2007-11-19 21:51
帖子: 6956
地址: 成都
送出感谢: 0 次
接收感谢: 4
汉字转urlencode太长,没必要:
代码:
echo -n "汉字"|iconv -f utf-8 -t gbk|od -t x1 -A n -w1000|tr " " "%"


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 学校 ftp 搜索
帖子发表于 : 2008-11-07 12:51 

注册: 2006-07-09 12:22
帖子: 1331
地址: 南京
送出感谢: 0 次
接收感谢: 1
xiooli, 好方法。谢谢。


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 3 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

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


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

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

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