看漫画的同鞋有木有?下载漫画的东东,你可能想瞅瞅~~

sh/bash/dash/ksh/zsh等Shell脚本
回复
头像
wiewi
帖子: 628
注册时间: 2008-11-20 22:50
系统: ArchLinux

看漫画的同鞋有木有?下载漫画的东东,你可能想瞅瞅~~

#1

帖子 wiewi » 2011-08-07 19:15

从17kkmh下载,有搜索功能,默认只取搜索结果的第一条,没有纠错功能 :em05
[bash]
[liwei@Arch ~] $ cat bin/downcomic
#!/bin/bash
# Usage: Download comic from 17kk漫画网 and save as both images and PDF documents.
# 11/07/15,[email protected]
# wget截取的图片地址是假的???

# Updated: 11/08/07
# Details: 根据html文件中的url,找到显示页面的java script,
# 打开后发现有
# HTMLviewimg = HTMLviewimg.replace("image3.17kk.net","111.74.238.205/image3.17kk");
# 之类的定义,大概就是把html中的image3.17kk.net替换成后面的那一串。
# 将脚本中得到的相应字串一一替换,即可下载到图片~~
#
# To be added:
# 1 识别漫画名称、章节名称 11/08/07 完成
# 2 搜索功能 11/08/07 完成(默认只取第一个结果)


# Destination
DEST=$HOME/media/images/comic

# Site
BASEURL=http://www.17kkmh.com

# Comic page
Page=$DEST/page
Result=$DEST/result

# Url list
List=$DEST/list
Picurl=$DEST/picurl

Usage(){
cat << USAGE
====================================================================
USAGE: `basename $0` url
`basename $0` -s/--search "KeyWord"
Example:
1. `basename $0` http://www.17kkmh.com/intro/6440.htm

The above line will download 《Naruto》 and save as image
files and generate PDF documents under your \$DEST(Easily
found in this script).
The URL must be http://www.17kkmh.com/xxx,other sites are
not supported at the moment.

2. `basename $0` -s "火影忍者"

This command will lead you to confirm downloading 火影忍者
automatically so you dont have to search it via browser
to get its URL and download it using Command 1.
====================================================================
USAGE

exit 0
}

# function of mkdir & cd
mkcd () {
if [ -d "$1" ];then
cd "$1"
else
mkdir -p "$1" && cd "$1"
fi
}

Clear (){
[ -d "$DEST" ] || mkdir -pv "$DEST"

for i in $Page $List $Picurl $Result
do
[ -f "$i" ] && rm -f $i
done
}

CheckUrl(){
SITE=$(echo $Url | sed 's/http:\/\///'| cut -d '/' -f1)
ping $SITE -c 1 -w 5 &>/dev/null
if [ "$?" -ne 0 ];then
echo "Error url format!"
exit 1
fi
}

GetChaplist(){
wget -q $Url -O $Page
if [ ! `file "$Page" | grep -i 'utf-8'` ];then
mv -f $Page $Page.bak
iconv -f GB18030 -t UTF-8 "$Page".bak -o "$Page"
rm -f $Page.bak
fi
TITLE=$(cat $Page | grep 'var bookname'| awk -F '"' '{print $2}'| tr -d '[ /]')

cat $Page | grep '<li>' | sed 's/.*href="//' | sed 's/".*//' > $List
# 将章节列表倒序,从第1话开始下载
mv -f $List $List.bak && tac $List.bak > $List && rm -f $List.bak
}

GetPic(){

while read line
do
wget -q $BASEURL/$line -O $Picurl
# Convert file encode
if [ -z `file $Picurl | grep -i utf-8` ];then
mv -f $Picurl $Picurl.bak
iconv -f GB18030 -t UTF-8 "$Picurl".bak -o "$Picurl"
rm -f $Picurl.bak
fi
# 得到章节名称并生成目录
Chapter=$(cat $Picurl | grep 'var jiename' | awk -F '"' '{print $2}'| tr -d '[ /]')
mkcd $DEST/$TITLE/$Chapter

# 图片序号
Ser=1

while true
do
# 得到当前页面,前一页和后一页的html文件名
CUR=$(cat $Picurl | sed -n '/img/{/src=/p}'| sed 's/.*src=//'| sed 's/>//')
PRE=$(cat $Picurl | sed -n '/href/{/htm/p}'| cut -d '"' -f 6)
NEX=$(cat $Picurl | sed -n '/href/{/htm/p}'| cut -d '"' -f 8)
# Download Picture

# URL replacements
# 截取需要替换的字段以及URL的尾部
Section=`echo $CUR | awk -F '/' '{print $3}'`
Tail=`echo $CUR | sed "s/http:\/\/"$Section"//" | sed 's/\\r//'`
case $Section in
http://www.17kk.net) Section2='111.74.238.205/image1.17kk';;
image.17kk.net) Section2='111.74.238.205/image1.17kk';;
image3.17kk.net) Section2='111.74.238.205/image3.17kk' ;;
image4.17kk.net) Section2='111.74.238.205/image6.17kk' ;;
image6.17kk.net) Section2='111.74.238.205/image6.17kk' ;;
image0.17kk.net) Section2='111.74.238.205/image0.17kk' ;;
image2.17kk.net) Section2='111.74.238.205/image2.17kk' ;;
image7.17kk.net) Section2='111.74.238.205/image7.17kk' ;;
comiclist.17kk.net) Section2='111.74.238.205' ;;
esac
# 拼接成新的URL
CURURL="http://${Section2}${Tail}"
wget -q -c -nc --timeout=10 --tries=3 "$CURURL" -O "$Chapter-$Ser"

# 序号递增
((Ser=Ser+1))

# 判断是否尾页,是则跳出循环,开始下载下一章节
if [ -z `echo $NEX | grep -i htm` ];then
for p in `ls`;
do
# 为图片添加后缀
Type=`file $p | awk '{print $2}'`
case $Type in
JPEG)
mv -f $p $p.jpg
;;
PNG)
mv -f $p $p.png
;;
GIF)
mv -f $p $p.gif
;;
PC)
mv -f $p $p.bmp
;;
*)
;;
esac
done

# 将图片转换为PDF文件,注意顺序
[ "`ls`" ] && convert `ls -v|xargs` "$Chapter".pdf

break
fi
# 还未到尾页,则继续下载下一页面
NUM=$(echo $line | sed 's/[^0-9]//g')
NEXTURL=`echo "http://vlew.17kkmh.com/intro_view/$NUM/$NEX" | sed 's/\\r//g'`
wget -q $NEXTURL -O $Picurl
if [ -z `file $Picurl | grep -i utf-8` ];then
iconv -f GB18030 -t UTF-8 $Picurl -o $Picurl
fi
done

done < $List
}

# 默认只取第一个搜索结果
Search(){
Word=$1
# 转换关键字编码
Code=`echo -n "$Word" | iconv -c -t GB18030 | od -t x1 -A n -w1000 | tr ' ' '%'`
wget -q "http://www.17kkmh.com/so/s/comic1/?soType=1&soKey=$Code" -O $Result
iconv -f GB18030 -t UTF-8 $Result -o $Result
Name=`cat $Result | sed -n '/www.17kkmh.com/{/target/p}' | sed -n 1p|sed 's/<\/font>//g' | tr -d ' ' | sed 's/<[^>]*>/ /g' | awk '{print $1}'| tr -d '/'`
Url=`cat $Result | sed -n '/www.17kkmh.com/{/target/p}' | sed -n 1p | awk -F '"' '{print $4}'`
if [ -z "$Name" ];then
echo "没有搜索到与$Word相关的漫画!"
exit 1
else
echo "将要下载:"
echo "$Name(y/n)"
read Choice
if [ "$Choice" = 'n' ];then
Clear;
exit 1
fi
fi
}

Download(){

CheckUrl;
Clear;
GetChaplist;
GetPic;
Clear;
exit 0
}

case $# in
0)
Usage
;;
1)
if [ "$1" = "-s" -o "$1" = "--search" ];then
echo "##########缺少关键词!##########" && Usage
else
Url=$1
Download
fi
;;
2)
if [ "$1" = "-s" -o "$1" = "--search" ];then
Search "$2"
Download
else
Usage
fi
;;
*)
Usage
;;
esac
[/bash]
[liwei@Arch ~] $ downcomic
====================================================================
USAGE: downcomic url
downcomic -s/--search "KeyWord"
Example:
1. downcomic http://www.17kkmh.com/intro/6440.htm

The above line will download 《Naruto》 and save as image
files and generate PDF documents under your $DEST(Easily
found in this script).
The URL must be http://www.17kkmh.com/xxx,other sites are
not supported at the moment.

2. downcomic -s "火影忍者"

This command will lead you to confirm downloading 火影忍者
automatically so you dont have to search it via browser
to get its URL and download it using Command 1.
====================================================================
2011-08-07-17-48-04.png
===我的小窝===
无聊吗?点我吧,楼主迫切期待你的光临~~
又一个轮子
------------------------------------
这年头,没有1000贴都不好意思见人了
------------------------------------
献丑不如藏拙
------------
头像
jadeity
帖子: 689
注册时间: 2010-10-21 17:55

Re: 看漫画的同鞋有木有?下载漫画的东东,你可能想瞅瞅~~

#2

帖子 jadeity » 2011-08-07 19:30

我也在看滑头鬼之孙, :em11 。不过是在线看的。月刊或者合集下来用Comix看
头像
qy117121
论坛版主
帖子: 50587
注册时间: 2007-12-14 13:40
系统: Winbuntu
来自: 志虚国乌由市
联系:

Re: 看漫画的同鞋有木有?下载漫画的东东,你可能想瞅瞅~~

#3

帖子 qy117121 » 2011-08-07 19:43

我只看动画
渠月 · QY   
本人只会灌水,不负责回答问题
无聊可以点一下→ http://u.nu/ubuntu

邮箱 [email protected]
yongyou
帖子: 4
注册时间: 2011-08-05 21:30

Re: 看漫画的同鞋有木有?下载漫画的东东,你可能想瞅瞅~~

#4

帖子 yongyou » 2011-08-08 0:07

wiewi 写了:从17kkmh下载,有搜索功能,默认只取搜索结果的第一条,没有纠错功能 :em05
[bash]
[liwei@Arch ~] $ cat bin/downcomic
#!/bin/bash
# Usage: Download comic from 17kk漫画网 and save as both images and PDF documents.
# 11/07/15,[email protected]
# wget截取的图片地址是假的???

# Updated: 11/08/07
# Details: 根据html文件中的url,找到显示页面的java script,
# 打开后发现有
# HTMLviewimg = HTMLviewimg.replace("image3.17kk.net","111.74.238.205/image3.17kk");
# 之类的定义,大概就是把html中的image3.17kk.net替换成后面的那一串。
# 将脚本中得到的相应字串一一替换,即可下载到图片~~
#
# To be added:
# 1 识别漫画名称、章节名称 11/08/07 完成
# 2 搜索功能 11/08/07 完成(默认只取第一个结果)


# Destination
DEST=$HOME/media/images/comic

# Site
BASEURL=http://www.17kkmh.com

# Comic page
Page=$DEST/page
Result=$DEST/result

# Url list
List=$DEST/list
Picurl=$DEST/picurl

Usage(){
cat << USAGE
====================================================================
USAGE: `basename $0` url
`basename $0` -s/--search "KeyWord"
Example:
1. `basename $0` http://www.17kkmh.com/intro/6440.htm

The above line will download 《Naruto》 and save as image
files and generate PDF documents under your \$DEST(Easily
found in this script).
The URL must be http://www.17kkmh.com/xxx,other sites are
not supported at the moment.

2. `basename $0` -s "火影忍者"

This command will lead you to confirm downloading 火影忍者
automatically so you dont have to search it via browser
to get its URL and download it using Command 1.
====================================================================
USAGE

exit 0
}

# function of mkdir & cd
mkcd () {
if [ -d "$1" ];then
cd "$1"
else
mkdir -p "$1" && cd "$1"
fi
}

Clear (){
[ -d "$DEST" ] || mkdir -pv "$DEST"

for i in $Page $List $Picurl $Result
do
[ -f "$i" ] && rm -f $i
done
}

CheckUrl(){
SITE=$(echo $Url | sed 's/http:\/\///'| cut -d '/' -f1)
ping $SITE -c 1 -w 5 &>/dev/null
if [ "$?" -ne 0 ];then
echo "Error url format!"
exit 1
fi
}

GetChaplist(){
wget -q $Url -O $Page
if [ ! `file "$Page" | grep -i 'utf-8'` ];then
mv -f $Page $Page.bak
iconv -f GB18030 -t UTF-8 "$Page".bak -o "$Page"
rm -f $Page.bak
fi
TITLE=$(cat $Page | grep 'var bookname'| awk -F '"' '{print $2}'| tr -d '[ /]')

cat $Page | grep '<li>' | sed 's/.*href="//' | sed 's/".*//' > $List
# 将章节列表倒序,从第1话开始下载
mv -f $List $List.bak && tac $List.bak > $List && rm -f $List.bak
}

GetPic(){

while read line
do
wget -q $BASEURL/$line -O $Picurl
# Convert file encode
if [ -z `file $Picurl | grep -i utf-8` ];then
mv -f $Picurl $Picurl.bak
iconv -f GB18030 -t UTF-8 "$Picurl".bak -o "$Picurl"
rm -f $Picurl.bak
fi
# 得到章节名称并生成目录
Chapter=$(cat $Picurl | grep 'var jiename' | awk -F '"' '{print $2}'| tr -d '[ /]')
mkcd $DEST/$TITLE/$Chapter

# 图片序号
Ser=1

while true
do
# 得到当前页面,前一页和后一页的html文件名
CUR=$(cat $Picurl | sed -n '/img/{/src=/p}'| sed 's/.*src=//'| sed 's/>//')
PRE=$(cat $Picurl | sed -n '/href/{/htm/p}'| cut -d '"' -f 6)
NEX=$(cat $Picurl | sed -n '/href/{/htm/p}'| cut -d '"' -f 8)
# Download Picture

# URL replacements
# 截取需要替换的字段以及URL的尾部
Section=`echo $CUR | awk -F '/' '{print $3}'`
Tail=`echo $CUR | sed "s/http:\/\/"$Section"//" | sed 's/\\r//'`
case $Section in
http://www.17kk.net) Section2='111.74.238.205/image1.17kk';;
image.17kk.net) Section2='111.74.238.205/image1.17kk';;
image3.17kk.net) Section2='111.74.238.205/image3.17kk' ;;
image4.17kk.net) Section2='111.74.238.205/image6.17kk' ;;
image6.17kk.net) Section2='111.74.238.205/image6.17kk' ;;
image0.17kk.net) Section2='111.74.238.205/image0.17kk' ;;
image2.17kk.net) Section2='111.74.238.205/image2.17kk' ;;
image7.17kk.net) Section2='111.74.238.205/image7.17kk' ;;
comiclist.17kk.net) Section2='111.74.238.205' ;;
esac
# 拼接成新的URL
CURURL="http://${Section2}${Tail}"
wget -q -c -nc --timeout=10 --tries=3 "$CURURL" -O "$Chapter-$Ser"

# 序号递增
((Ser=Ser+1))

# 判断是否尾页,是则跳出循环,开始下载下一章节
if [ -z `echo $NEX | grep -i htm` ];then
for p in `ls`;
do
# 为图片添加后缀
Type=`file $p | awk '{print $2}'`
case $Type in
JPEG)
mv -f $p $p.jpg
;;
PNG)
mv -f $p $p.png
;;
GIF)
mv -f $p $p.gif
;;
PC)
mv -f $p $p.bmp
;;
*)
;;
esac
done

# 将图片转换为PDF文件,注意顺序
[ "`ls`" ] && convert `ls -v|xargs` "$Chapter".pdf

break
fi
# 还未到尾页,则继续下载下一页面
NUM=$(echo $line | sed 's/[^0-9]//g')
NEXTURL=`echo "http://vlew.17kkmh.com/intro_view/$NUM/$NEX" | sed 's/\\r//g'`
wget -q $NEXTURL -O $Picurl
if [ -z `file $Picurl | grep -i utf-8` ];then
iconv -f GB18030 -t UTF-8 $Picurl -o $Picurl
fi
done

done < $List
}

# 默认只取第一个搜索结果
Search(){
Word=$1
# 转换关键字编码
Code=`echo -n "$Word" | iconv -c -t GB18030 | od -t x1 -A n -w1000 | tr ' ' '%'`
wget -q "http://www.17kkmh.com/so/s/comic1/?soType=1&soKey=$Code" -O $Result
iconv -f GB18030 -t UTF-8 $Result -o $Result
Name=`cat $Result | sed -n '/www.17kkmh.com/{/target/p}' | sed -n 1p|sed 's/<\/font>//g' | tr -d ' ' | sed 's/<[^>]*>/ /g' | awk '{print $1}'| tr -d '/'`
Url=`cat $Result | sed -n '/www.17kkmh.com/{/target/p}' | sed -n 1p | awk -F '"' '{print $4}'`
if [ -z "$Name" ];then
echo "没有搜索到与$Word相关的漫画!"
exit 1
else
echo "将要下载:"
echo "$Name(y/n)"
read Choice
if [ "$Choice" = 'n' ];then
Clear;
exit 1
fi
fi
}

Download(){

CheckUrl;
Clear;
GetChaplist;
GetPic;
Clear;
exit 0
}

case $# in
0)
Usage
;;
1)
if [ "$1" = "-s" -o "$1" = "--search" ];then
echo "##########缺少关键词!##########" && Usage
else
Url=$1
Download
fi
;;
2)
if [ "$1" = "-s" -o "$1" = "--search" ];then
Search "$2"
Download
else
Usage
fi
;;
*)
Usage
;;
esac
[/bash]
[liwei@Arch ~] $ downcomic
====================================================================
USAGE: downcomic url
downcomic -s/--search "KeyWord"
Example:
1. downcomic http://www.17kkmh.com/intro/6440.htm

The above line will download 《Naruto》 and save as image
files and generate PDF documents under your $DEST(Easily
found in this script).
The URL must be http://www.17kkmh.com/xxx,other sites are
not supported at the moment.

2. downcomic -s "火影忍者"

This command will lead you to confirm downloading 火影忍者
automatically so you dont have to search it via browser
to get its URL and download it using Command 1.
====================================================================
2011-08-07-17-48-04.png






看见楼主用火影做例子表示很感动
头像
linux_inside
帖子: 105
注册时间: 2011-05-27 9:55
来自: 河南省新乡市
联系:

Re: 看漫画的同鞋有木有?下载漫画的东东,你可能想瞅瞅~~

#5

帖子 linux_inside » 2011-08-08 17:59

如果新建一个html文件,把得到的图片地址全部放到这个文件里,然后调用火狐打开,使用downthemall下载岂不是更爽 :em02
tusooa
帖子: 6548
注册时间: 2008-10-31 22:12
系统: 践兔
联系:

Re: 看漫画的同鞋有木有?下载漫画的东东,你可能想瞅瞅~~

#6

帖子 tusooa » 2011-08-08 20:59

# function of mkdir & cd
mkcd
https://github.com/tusooa/tusooa/blob/m ... /.zsh+misc
第86行

代码: 全选

] ls -ld //
头像
cuihao
帖子: 4793
注册时间: 2008-07-24 11:33
来自: 郑州
联系:

Re: 看漫画的同鞋有木有?下载漫画的东东,你可能想瞅瞅~~

#7

帖子 cuihao » 2011-08-08 21:01

qy117121 写了:我只看动画
我只看那些上映了N年经过人民群众考核的好动画
包括多啦A梦 :em04
求人不如求它仨: 天蓝的Wiki 屎黄的Wiki 绿
Site: CUIHAO.TK    Twitter: @cuihaoleo
Machine: Athlon64 X2 5200+ / 2x2GB DDR2-800 / GeForce GTS 450
AD: ~まだ見ぬ誰かの笑顔のために~
回复