当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 20 篇帖子 ]  前往页数 1, 2  下一页
作者 内容
1 楼 
 文章标题 : [原创]下载文档文件的脚本(支持lrc、doc、xls、pdf、ppt等),可用于下载歌词
帖子发表于 : 2008-05-01 18:58 
头像

注册: 2007-11-19 21:51
帖子: 6956
地址: 成都
送出感谢: 0 次
接收感谢: 4
保存到任意目录然后cd到该目录
代码:
chmod +x ./downdocs.sh

用途:

用于搜索并下载特定格式的文件,此处的文件主要是文档文件如lrc、doc等,当然你不能用它来搜索图片,音乐,某种片片等东东。
ps:这不是我能支配的,如果你说为何不能下片片,那么我只能建议你去询问baidu的工作人员啦:D

用法:

使用方法:downdocs.sh -f [文档类型] [待搜文件名(就是keywords啦)],不加-f参数默认搜索lrc文件。
文档类型包括lrc(歌词文件)、doc、xls、pdf、ppt等。
下载的文件默认保存在~/docs/filetype目录,保存的文件名格式为:文件名.filetype

源码:

代码:
#!/bin/bash
#coded by xiooli
#使用方法:downdocs.sh -f [文档类型] [待文件名],不加-f参数默认搜索lrc文件。
#文档类型包括lrc(歌词文件)、doc、xls、pdf、ppt等。
#参考了benqlk的部分代码:http://forum.ubuntu.org.cn/viewtopic.php?t=95073,(虽然这段代码现在已经被替换了)在此表示感谢。
#下载的文件默认保存在~/docs/filetype目录,保存的文件名格式为:文件名.filetype
if [ $1 == "-f" ];then
   filetype=$2
   keyword=$3
else
   filetype="lrc"
   keyword=$1
fi
#在此改变文件的保存目录
save_dir=~/docs/$filetype
if ! [ -d ~/docs ];then
   mkdir ~/docs
fi
if ! [ -d $save_dir ];then
   mkdir $save_dir
fi
if [ `locale |grep "LANG=.*UTF-8"` ];then
   lang=1
fi
if [ $lang ];then
   tmp=`echo "$keyword" | iconv -c -f utf-8 -t gb2312`
else
   tmp=$keyword
fi
#将字符转换成urlencode(字母也会被转成urlencode,不过搜索效果是一样的,就没有区别对待啦:P)
   a=`echo "$tmp" | od -t x1 -A n |tr " " %`
#获取原材料并从中提取出欲下文档的url并下载之。
wget "http://www.baidu.com/s?wd=$a+filetype%3A$filetype&cl=3" -O /tmp/src_file
if [ $lang ];then
   iconv -f gb2312 -t utf-8 -c /tmp/src_file >/tmp/src_file_utf8
   cat /tmp/src_file_utf8 |grep -i "<b>【$filetype】</b>" |sed 's/href=\"/\n/g' |sed 's/.*cache.baidu.com.*//g' \
   |awk -F"</font>" '{print $1,$2}' |sed 's/ target=.*\">//g' |sed 's/<.*>//g;s/文件格式://g;s/ //g' \
   |grep "^http" |grep -n "^http">/tmp/links
else
   mv /tmp/src_file /tmp/src_file_utf8
   cat /tmp/src_file_utf8 |grep -i "<b>【$filetype】</b>" |sed 's/href=\"/\n/g' |sed 's/.*cache.baidu.com.*//g' \
   |awk -F"</font>" '{print $1,$2}' |sed 's/ target=.*\">//g' |sed 's/<.*>//g;s/�ļ���ʽ://g;s/ //g' \
   |grep "^http" |grep -n "^http">/tmp/links
fi
echo "文件类型:$filetype
"
cat /tmp/links |awk -F"\"" '{print $2}'   |grep -n ".*"
if  [ -s /tmp/links ];then
   read -p "请选择你要下载的文件:" num
   url=`cat /tmp/links |grep "^$num" |awk -F"\"" '{print $1}' |awk -F":" '{print $2":"$3}'`
   name=`cat /tmp/links |grep "^$num" |awk -F"\"" '{print $2}'`
   if [ -e $save_dir/$name.$filetype ];then
      echo "已存在同名文件!"
   else
      if [ $lang ] && [ $filetype == "lrc" ] ;then
         wget "$url" -O /tmp/$name.$filetype
         iconv -f gb2312 -t utf-8 -c /tmp/$name.$filetype -o $save_dir/$name.$filetype
         rm /tmp/$name.$filetype
      else
         wget "$url" -O $save_dir/$name.$filetype
      fi
   fi
else
   echo "未搜索到结果"
fi

源文件:


附件:
downdocs.sh.去掉后面(新).rar [2.43 KiB]
被下载 44 次
文件注释: 这个已经旧了,请下第一个
downdocs.sh.去掉后面.rar [2.47 KiB]
被下载 99 次


最后由 xiooli 编辑于 2008-05-16 23:26,总共编辑了 5 次
页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2008-05-01 18:59 
头像

注册: 2007-11-19 21:51
帖子: 6956
地址: 成都
送出感谢: 0 次
接收感谢: 4
来一张运行图片:


附件:
Screenshot.png
Screenshot.png [ 873.76 KiB | 被浏览 1531 次 ]

页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2008-05-02 13:42 
头像

注册: 2007-11-19 21:51
帖子: 6956
地址: 成都
送出感谢: 0 次
接收感谢: 4
在原来只下lrc的基础上增加了下载doc、pdf、ppt等文件的功能,欢迎大家下载试用 :em01 :em02


页首
 用户资料  
 
4 楼 
 文章标题 :
帖子发表于 : 2008-05-02 13:52 
头像

注册: 2006-03-04 23:10
帖子: 888
地址: 江西高安
送出感谢: 0 次
接收感谢: 2
不错,学习中...


_________________
QQ:273247606
EMAIL:yanghui1986527@gmail.com


页首
 用户资料  
 
5 楼 
 文章标题 :
帖子发表于 : 2008-05-02 15:03 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 272
作什么用的呢。那被搜索的文件,是什么文件啊。


_________________
● 鸣学


页首
 用户资料  
 
6 楼 
 文章标题 :
帖子发表于 : 2008-05-02 15:49 
头像

注册: 2007-11-19 21:51
帖子: 6956
地址: 成都
送出感谢: 0 次
接收感谢: 4
eexpress 写道:
作什么用的呢。那被搜索的文件,是什么文件啊。

就是搜索并下载文档文件的呀,比如doc、pdf、ppt、lrc这些格式的文件啊,可能有用点是还是下载歌词文件了,默认不加-f参数就是下载歌词文件的。


页首
 用户资料  
 
7 楼 
 文章标题 :
帖子发表于 : 2008-05-02 15:58 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 272
[待搜文件名]是指url吗


_________________
● 鸣学


页首
 用户资料  
 
8 楼 
 文章标题 :
帖子发表于 : 2008-05-02 16:08 
头像

注册: 2007-11-19 21:51
帖子: 6956
地址: 成都
送出感谢: 0 次
接收感谢: 4
eexpress 写道:
[待搜文件名]是指url吗

额滴神啊,文件名能是url么,当然是指keywords拉 :em65
ps:难道是我的表达有问题?


页首
 用户资料  
 
9 楼 
 文章标题 :
帖子发表于 : 2008-05-02 17:13 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 272
是这意思拉。因为1楼没说明用处啊。你不觉得吗。呵呵。


_________________
● 鸣学


页首
 用户资料  
 
10 楼 
 文章标题 :
帖子发表于 : 2008-05-02 17:28 
头像

注册: 2006-04-12 20:05
帖子: 8495
地址: 杭州
送出感谢: 0 次
接收感谢: 8
赞,不错啊~


_________________
关注我的blog: ε==3


页首
 用户资料  
 
11 楼 
 文章标题 :
帖子发表于 : 2008-05-16 15:13 
头像

注册: 2007-04-25 13:12
帖子: 2838
送出感谢: 0 次
接收感谢: 0 次
谢lz :lol:


_________________
♜♞♝♛♚♝♞♜
♟♟♟♟♟♟♟♟
♙♙♙♙♙♙♙♙
♖♘♗♕♔♗♘♖

☠☯⚔⚓☣☦☃☕
☹☻☪☭☬⚖⚛⚜
ℜℳℬ™ ℋℯℓ℘ ℳℭ
sƂɐʍ рǀɹoʍ əɥʇ oS


页首
 用户资料  
 
12 楼 
 文章标题 :
帖子发表于 : 2008-05-16 21:33 
头像

注册: 2007-04-25 13:12
帖子: 2838
送出感谢: 0 次
接收感谢: 0 次
lz..我什么也搜索不到 :(


附件:
2008-05-16-213354_498x353_scrot.png
2008-05-16-213354_498x353_scrot.png [ 34.9 KiB | 被浏览 1396 次 ]



_________________
♜♞♝♛♚♝♞♜
♟♟♟♟♟♟♟♟
♙♙♙♙♙♙♙♙
♖♘♗♕♔♗♘♖

☠☯⚔⚓☣☦☃☕
☹☻☪☭☬⚖⚛⚜
ℜℳℬ™ ℋℯℓ℘ ℳℭ
sƂɐʍ рǀɹoʍ əɥʇ oS
页首
 用户资料  
 
13 楼 
 文章标题 :
帖子发表于 : 2008-05-16 23:13 
头像

注册: 2007-04-25 13:12
帖子: 2838
送出感谢: 0 次
接收感谢: 0 次
在我这还是不行 :(


_________________
♜♞♝♛♚♝♞♜
♟♟♟♟♟♟♟♟
♙♙♙♙♙♙♙♙
♖♘♗♕♔♗♘♖

☠☯⚔⚓☣☦☃☕
☹☻☪☭☬⚖⚛⚜
ℜℳℬ™ ℋℯℓ℘ ℳℭ
sƂɐʍ рǀɹoʍ əɥʇ oS


页首
 用户资料  
 
14 楼 
 文章标题 :
帖子发表于 : 2008-05-16 23:14 
头像

注册: 2007-04-25 13:12
帖子: 2838
送出感谢: 0 次
接收感谢: 0 次
:shock: 记起来一件重要的事...我是英文locale..
代码:
como@Lethe:~$ locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=


_________________
♜♞♝♛♚♝♞♜
♟♟♟♟♟♟♟♟
♙♙♙♙♙♙♙♙
♖♘♗♕♔♗♘♖

☠☯⚔⚓☣☦☃☕
☹☻☪☭☬⚖⚛⚜
ℜℳℬ™ ℋℯℓ℘ ℳℭ
sƂɐʍ рǀɹoʍ əɥʇ oS


页首
 用户资料  
 
15 楼 
 文章标题 :
帖子发表于 : 2008-05-16 23:18 
头像

注册: 2007-11-19 21:51
帖子: 6956
地址: 成都
送出感谢: 0 次
接收感谢: 4
solcomo 写道:
:shock: 记起来一件重要的事...我是英文locale..
代码:
como@Lethe:~$ locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

我也是刚刚想到的,哈哈,没有考虑周全啊,等我再改下。


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

当前时区为 UTC + 8 小时


在线用户

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


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

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

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