分页: 1 / 1

一个抓取美女图片的脚本

发表于 : 2007-04-24 11:43
ziyun
学习了一段时间的shell试着写了一脚本玩玩
这个脚本作用是从 天涯社区/天涯真我/美媚秀 上把图片地址提取出来集中到一个页面中来欣赏
运行后生成index.html.1 index.html.2这样的文件,用浏览器打开就可以了
每个页面集中20张图片地址

代码: 全选

#!/bin/bash
echo -e "Starting...\n This will take some minutes,Please wait...."
baseurl="http://cache.tianya.cn"
out="tianyamyself.shtml"
tmp="tmp.html"
dist="http://cache.tianya.cn/new/Publicforum/ArticlesList.asp?strItem=tianyamyself&idWriter=0&Key=0&Part=1&strSubItem=%C3%C0%C3%C4%D0%E3&s
trSubItem2="
result="index.html"
true > $result
true > pictmp.html
loop=1
output=tmp1.html
while true
do
if [ $loop == 0 ];then
break
fi
wget -q  --timeout=30 -O $out "$dist"
iconv -c -f GB2312 -t UTF-8 -o $output $out
#rm -f $out
#mv $output $out
dist=${baseurl}`grep "下一页" $output|sed -e 's/href=/&\n/g'|sed -e '1,2d'|awk -F '>' '{print $1}'|iconv -c -f UTF-8 -t GB2312`
#echo $dist
for i in `sed -e 's/<a href=/&\n/g' $output|sed -n -e '/shtml/p'|awk -F "'" '{print $2}'`
    do
        wget  -q --timeout=30 -O $tmp ${baseurl}$i
       sed  -e 's/<img src=/\n&/g' -e '/advertisement/d;/logo/d;/Google/d;' $tmp |sed -n -e '/<img src=/p'|sed -e '$d'|awk -F '"' '{print
$2}'  >> pictmp.html
     done
loop=`expr $loop - 1 `
done
sort -u  pictmp.html >pic.html
j=1
while read line
do
echo "<img src=$line><br>">>$result
if [ `expr $j % 20` == 0 ];then
pre=$result
result=`echo $result|sed -e 's/html\..*$/html/'`.$(echo `expr $j / 20 `)
echo "<br><p align=center><a href=$result>Next</a></p>" >> $pre
fi
j=`expr $j + 1`
done < pic.html

rm -f pic.html  $out $output $tmp pictmp.html
echo "Done."
echo "You can open ./index.html to look it."

发表于 : 2007-04-24 13:03
ziyun

发表于 : 2007-04-24 13:24
eexpress
似乎写复杂了。

发表于 : 2007-04-24 13:27
suncanoe
很不错

发表于 : 2007-04-24 13:41
ziyun
水平有限,高手指点一下
我是先读一个论坛的文章列表,再去读列表中的每篇文章,再分析文章中的图片地址然后输出到文件中

发表于 : 2007-04-24 13:44
BigSnake.NET
把图片下到本地就好了

发表于 : 2007-04-24 13:47
eexpress
我下面的wiki里面有个强力下载图片的。应用环境有些不同,是看缩略图,觉得好,才右键下载当前页面图片的。在opera里面调用。直接使用浏览器的缓冲页面。支持不同网站的分类。
可以综合下。全部下载的,以前也有,一个网站的全部刷,只是发现大多数图片都要删除,不爽。呵呵。

发表于 : 2007-04-24 13:51
ziyun
BigSnake.NET 写了:把图片下到本地就好了
想把图片下到本地只需要改倒数第二行
依次读取pic.html的内容用wget下载就行了
for i in `grep http pic.html`; do wget $i; done

发表于 : 2007-04-28 16:03
bones7456
哈哈,不错!

发表于 : 2007-04-28 16:13
ziyun
我已经把程序改了一下,生成一个页面太大了,改成生成index.html.1 index.html.2这样的了,每页20张图片

发表于 : 2007-05-10 23:14
东方不坏
be a good gun