[原创]自己写的一个在北邮人论坛贴图秀版里边抓图的脚本,还不是很完善;-)
发表于 : 2007-05-20 17:47
恩,最近突然有了一种看法:
觉得既然学习linux,就不能天天去升级了,装一些不中用的图形界面软件了,搞什么beryl了,当然这些也是可以在轻松之余去弄弄的,但决不是每天一开电脑就去做,以为一段时间之后,你会发现自己面对电脑屏幕不知道该干什么了……
我发现linux最强大的还是她的命令行,还是那些经典的软件,就像各类的ftp客户端,我估计高手们肯定会认同lftp是无可替代的,不论是链接速度,功能各方面都相当强大,并且对中文的转换也很透明的。
还有我发现shell也是很强大的,她可以让你去做你想做的事情,去满足你的各种怪异的想法,等到我最近去学习的时候,才发现这是一个各大强人一展身手的地方,因为你可以用更简单的方法去做,大家也会很乐意帮助新手。
说了一些废话,呵呵,偏离主题了,不过上边这些算是我写这个脚本的原因吧;-)
大概介绍一下这个脚本:
其实说白了,就是去分析网页,呵呵,把图片的地址找到就OK了
我把网页地址集中到一个html里边,默认使用firefox来查看,你可以改用你自己喜欢的浏览器。
觉得既然学习linux,就不能天天去升级了,装一些不中用的图形界面软件了,搞什么beryl了,当然这些也是可以在轻松之余去弄弄的,但决不是每天一开电脑就去做,以为一段时间之后,你会发现自己面对电脑屏幕不知道该干什么了……
我发现linux最强大的还是她的命令行,还是那些经典的软件,就像各类的ftp客户端,我估计高手们肯定会认同lftp是无可替代的,不论是链接速度,功能各方面都相当强大,并且对中文的转换也很透明的。
还有我发现shell也是很强大的,她可以让你去做你想做的事情,去满足你的各种怪异的想法,等到我最近去学习的时候,才发现这是一个各大强人一展身手的地方,因为你可以用更简单的方法去做,大家也会很乐意帮助新手。
说了一些废话,呵呵,偏离主题了,不过上边这些算是我写这个脚本的原因吧;-)
大概介绍一下这个脚本:
其实说白了,就是去分析网页,呵呵,把图片的地址找到就OK了
我把网页地址集中到一个html里边,默认使用firefox来查看,你可以改用你自己喜欢的浏览器。
代码: 全选
1 #!/bin/bash
2
3 # 恩,对以前的版本的改进,使得可以更人性化一点,毕竟复制链接也是一件很麻烦的事:(
4 # 可以显示第一页的标题,然后供选择,呵呵
5 # 版本: 0.0.2
6 # 日期: 2007年5月20日
7 # 作者: stufever
8 # 背景: byr上贴图秀里边的东东
9
10 picture_board_url="http://forum.byr.edu.cn/wForum/board.php?name=Picture"
11
12 wget -q $picture_board_url -O ttx
13
14 # 把贴图秀版面上所有帖子的ID和名字过滤出来
15 cat ttx | grep "origin" | sed -e 's/(/\,/g' | sed -e 's/=/\,/g' | awk -F ',' '{print $3}' > dir_list
16 rm ttx
17
18 iconv -f gbk -t utf-8 dir_list > dir_list_utf
19 rm dir_list
20
21 # 本来这个地方是想把dir_list_utf里边的帖子名字输出出来的,但是因为要加上行号,我就想不出来该怎么办了
22 # 恩,去论坛求助 http://forum.ubuntu.org.cn/viewtopic.php?p=304135#304135 要谢谢ziyun laborer兄!
23
24 while true
25 do
26 sed -n 'n;p' dir_list_utf | nl
27
28 echo ""
29 echo -n "Some interested ? Input the number(n), or quit(q): "
30 read c
31 if [ $c = 'q' ] ; then
32 echo "bye..."
33 exit 1
34 fi
35 # 利用了dir_list_utf的特点,一行ID一行帖子名
36 let c=2*${c}-1
37 number=`sed -n "${c}p" dir_list_utf`
38 ((c++))
39 name=`sed -n "${c}p" dir_list_utf | sed -e "s/'/:/g" | awk -F ":" '{print $2}'`
40 echo $name
41
42 tzurl="http://forum.byr.edu.cn/wForum/disparticle.php?boardName=Picture&ID=$number"
43 baseurl="http://forum.byr.edu.cn/wForum/"
44
45 echo "Begining..."
46 wget -q $tzurl -O tz_wz
47
48 # 这个地方要注释一下,要不就再也想不起来了;-)
49 # "bid"的行里边有所有图片的信息,好像就是一个帖子吧;里边可能有不止一个图片,所以把它们变成多个行;
50 # 然后把没用的行给过滤掉;之后的awk,就可以把有用的东西提取出来了;后边这个sed我也有点不解,因为awk之后,只剩一行了;
51 # 后边的就是把网址变成需要的形式,pic_bottom里边就放着了该图片链接的后半部分
52 cat tz_wz | grep "bid" | sed -e 's/<a href=/&\n/g' | grep "bbscon" | awk -F '"' '{printf $2'\n'}' | sed -e 's/bbscon /\nbbscon/g' | sed 1d | sed -e 's/&/\&/g' > pic_bottom
53
54 # 把最后所有图片的网址放到一个html里边,这个地方可以改进,但是对html几乎不了解,就这样了
55 for i in `sed -e '' pic_bottom`
56 do
57 echo "<img src="$baseurl$i"><br>" >> "$HOME/$name.html"
58 done
59
60 firefox "$HOME/$name.html"
61 rm tz_wz pic_bottom
62 echo "If you like it, At firefox File-->Save as :)"
63 rm "$HOME/$name.html"
64
65 echo "done..."
66
67 done
68 rm dir_list_utf