. : : ClassiClub ForuM : : .

会员中心 论坛帮助 日历事件 标记论坛已读
返回   精品技术论坛 » 技术论坛 » 『软件使用』

『软件使用』: 电脑软件推荐, 电脑软件使用, 经验分享



发表新主题 关闭主题
 
主题工具
hitme
 
hitme 的头像
支柱会员
 
资 料:
注册日期: Oct 2001
帖子: 6,489 声望值: 2
精华: 38,解答: 6
#1 旧 2005-06-02, 10:48:55 默认 【原创】批量下载漫画图片
hitme 当前离线  

述求:http://bbs.et8.net/bbs/showthread.php?t=664340

开工:

1.找文件名规律,gif文件名有两位随机位,碰壁
2.查看htm文件,http://www.wulffmorgenthaler.com/thestrip.asp?cDay=09&cMonth=05&cYear=2005,带年月日,有规律真好
3.列表年月日,备用
4.出动curl,下载htm,分析htm,下载gif
5.收工

保存为get_gif.cmd运行,自行修改红色部分,现表示下载前10天的gif文件

代码:
@echo off

::/ * list date */

set /a n=0
:loop
set /a n+=1

>t_day.vbs  echo ' Yesterday.vbs,  Version 1.01                          
>>t_day.vbs echo '                                                      
>>t_day.vbs echo ' Written by Rob van der Woude                         
>>t_day.vbs echo ' http://www.robvanderwoude.com                        
>>t_day.vbs echo '                                                     
>>t_day.vbs echo ' Calculate yesterday's date                           
>>t_day.vbs echo    dtmYesterday = DateAdd("d",-%n%,Date)       
>>t_day.vbs echo '                                                      
>>t_day.vbs echo ' Get yesterday's year                                 
>>t_day.vbs echo    strYear      = DatePart("yyyy",dtmYesterday)        
>>t_day.vbs echo '                                                    
>>t_day.vbs echo ' Get yesterday's month, add leading zero if necessary 
>>t_day.vbs echo    If DatePart("m",dtmYesterday) ^< 10 Then            
>>t_day.vbs echo 	   strMonth = 0 ^& DatePart("m",dtmYesterday)       
>>t_day.vbs echo    Else                                                
>>t_day.vbs echo 	   strMonth = DatePart("m",dtmYesterday)           
>>t_day.vbs echo    End If                                              
>>t_day.vbs echo '                                                      
>>t_day.vbs echo ' Get yesterday's day, add leading zero if necessary  
>>t_day.vbs echo    If DatePart("d",dtmYesterday) ^< 10 Then            
>>t_day.vbs echo	   strDay = 0 ^& DatePart("d",dtmYesterday)        
>>t_day.vbs echo    Else                                               
>>t_day.vbs echo	   strDay = DatePart("d",dtmYesterday)            
>>t_day.vbs echo    End If                                              
>>t_day.vbs echo '                                                     
>>t_day.vbs echo ' Format output for yesterday                          
>>t_day.vbs echo   strYest = strYear ^& strMonth ^& strDay             
>>t_day.vbs echo '                                                     
>>t_day.vbs echo ' echo                                                 
>>t_day.vbs echo Wscript.echo( strYest )   
                             
for /f "delims=" %%i in ('cscript.exe //nologo t_day.vbs') do echo %%i>>tmp.txt

if %n% neq 10 goto :loop


::/ * get htm * /
for /f "delims=" %%i in (tmp.txt) do (
				setlocal ENABLEDELAYEDEXPANSION
				set n=%%i
				curl -o !n!.htm http://www.wulffmorgenthaler.com/thestrip.asp?cDay=!n:~-2!^&cMonth=!n:~4,2!^&cYear=!n:~0,4!
				endlocal
)

::/ * get gif * /
for /f "tokens=4 delims==" %%i in ('findstr "log" *.htm') do (
				setlocal ENABLEDELAYEDEXPANSION
				set m=%%i
				curl -o !m:~5,-5! http://www.wulffmorgenthaler.com/!m:~1,-5!
				endlocal
)

::/ * clean * /
del *.htm tmp.txt 2>nul

参考资料
【原创】教你学用CURL --- 命令行浏览器
=========================================================
下载
curl
上传的附件
文件类型: rar get_gif.rar (794 字节, 34 次查看)

此帖于 2005-06-02 11:20:57 被 hitme 编辑. .
lyh728
 
lyh728 的头像
『软件使用』版主
 
资 料:
注册日期: Jan 2002
帖子: 4,283 声望值: 3
精华: 15,解答: 4
#2 旧 2005-06-02, 11:30:30 默认
lyh728 当前在线  

狂人,啊啊啊
ping
 
ping 的头像
热心会员
 
资 料:
注册日期: Feb 2002
帖子: 1,945 声望值: 6
精华: 0,解答: 2
#3 旧 2005-06-02, 11:31:29 默认
ping 当前离线  

就知道批处理的咚咚,找楼主没错了,真快。


有多少能力 就办多少事!
MacOS
 
MacOS 的头像
热心会员
 
资 料:
注册日期: Aug 2002
帖子: 13,396 声望值: 5
精华: 0,解答: 129
#4 旧 2005-06-02, 12:29:39 默认
MacOS 当前离线  

引用:
作者: hitme
述求:http://bbs.et8.net/bbs/showthread.php?t=664340

开工:

1.找文件名规律,gif文件名有两位随机位,碰壁
2.查看htm文件,http://www.wulffmorgenthaler.com/thestrip.asp?cDay=09&cMonth=05&cYear=2005,带年月日,有规律真好
3.列表年月日,备用
4.出动curl,下载htm,分析htm,下载gif
5.收工

保存为get_gif.cmd运行,自行修改红色部分,现表示下载前10天的gif文件

代码:
@echo off

::/ * list date */

set /a n=0
:loop
set /a n+=1

>t_day.vbs  echo ' Yesterday.vbs,  Version 1.01                          
>>t_day.vbs echo '                                                      
>>t_day.vbs echo ' Written by Rob van der Woude                         
>>t_day.vbs echo ' http://www.robvanderwoude.com                        
>>t_day.vbs echo '                                                     
>>t_day.vbs echo ' Calculate yesterday's date                           
>>t_day.vbs echo    dtmYesterday = DateAdd("d",-%n%,Date)       
>>t_day.vbs echo '                                                      
>>t_day.vbs echo ' Get yesterday's year                                 
>>t_day.vbs echo    strYear      = DatePart("yyyy",dtmYesterday)        
>>t_day.vbs echo '                                                    
>>t_day.vbs echo ' Get yesterday's month, add leading zero if necessary 
>>t_day.vbs echo    If DatePart("m",dtmYesterday) ^< 10 Then            
>>t_day.vbs echo 	   strMonth = 0 ^& DatePart("m",dtmYesterday)       
>>t_day.vbs echo    Else                                                
>>t_day.vbs echo 	   strMonth = DatePart("m",dtmYesterday)           
>>t_day.vbs echo    End If                                              
>>t_day.vbs echo '                                                      
>>t_day.vbs echo ' Get yesterday's day, add leading zero if necessary  
>>t_day.vbs echo    If DatePart("d",dtmYesterday) ^< 10 Then            
>>t_day.vbs echo	   strDay = 0 ^& DatePart("d",dtmYesterday)        
>>t_day.vbs echo    Else                                               
>>t_day.vbs echo	   strDay = DatePart("d",dtmYesterday)            
>>t_day.vbs echo    End If                                              
>>t_day.vbs echo '                                                     
>>t_day.vbs echo ' Format output for yesterday                          
>>t_day.vbs echo   strYest = strYear ^& strMonth ^& strDay             
>>t_day.vbs echo '                                                     
>>t_day.vbs echo ' echo                                                 
>>t_day.vbs echo Wscript.echo( strYest )   
                             
for /f "delims=" %%i in ('cscript.exe //nologo t_day.vbs') do echo %%i>>tmp.txt

if %n% neq 10 goto :loop


::/ * get htm * /
for /f "delims=" %%i in (tmp.txt) do (
				setlocal ENABLEDELAYEDEXPANSION
				set n=%%i
				curl -o !n!.htm http://www.wulffmorgenthaler.com/thestrip.asp?cDay=!n:~-2!^&cMonth=!n:~4,2!^&cYear=!n:~0,4!
				endlocal
)

::/ * get gif * /
for /f "tokens=4 delims==" %%i in ('findstr "log" *.htm') do (
				setlocal ENABLEDELAYEDEXPANSION
				set m=%%i
				curl -o !m:~5,-5! http://www.wulffmorgenthaler.com/!m:~1,-5!
				endlocal
)

::/ * clean * /
del *.htm tmp.txt 2>nul

参考资料
【原创】教你学用CURL --- 命令行浏览器
=========================================================
下载
curl
直接用VBS算啦


HIDDEN MESSAGE LEVEL 3
14863 159357 789 159357 3245687 3684
rijet
 
rijet 的头像
核心会员
 
资 料:
注册日期: Mar 2002
帖子: 2,071 声望值: 3
精华: 0
#5 旧 2005-06-02, 12:29:58 默认
rijet 当前离线  

偶像!!狂谢!!正想怎么下载!


其实我»真的不«是爱因斯坦!
闪亮
 
闪亮 的头像
终极会员
 
资 料:
注册日期: Aug 2001
帖子: 10,392 声望值: 7
精华: 2,解答: 16
#6 旧 2005-06-02, 12:32:25 默认
闪亮 当前在线  

楼主。命令行太强了。


宝贝宝贝笑一笑 笑容其实很美妙
只要天天没烦恼 其他一切不重要
hitme
 
hitme 的头像
支柱会员
 
资 料:
注册日期: Oct 2001
帖子: 6,489 声望值: 2
精华: 38,解答: 6
#7 旧 2005-06-02, 12:49:33 默认
hitme 当前离线  

引用:
作者: MacOS
直接用VBS算啦
vbs不会扼。。。
东拼西凑。。四不象了
bs我吧,hitme最好

此帖于 2005-06-02 12:56:36 被 hitme 编辑. .
C.K dEsIgn
 
C.K dEsIgn 的头像
待认证激活
 
资 料:
注册日期: Sep 2001
帖子: 1,624 声望值: 0
精华: 0,解答: 1
#8 旧 2005-06-02, 13:32:57 默认
C.K dEsIgn 当前离线  

引用:
作者: hitme
述求:http://bbs.et8.net/bbs/showthread.php?t=664340

开工:

1.找文件名规律,gif文件名有两位随机位,碰壁
2.查看htm文件,http://www.wulffmorgenthaler.com/thestrip.asp?cDay=09&cMonth=05&cYear=2005,带年月日,有规律真好
3.列表年月日,备用
4.出动curl,下载htm,分析htm,下载gif
5.收工

保存为get_gif.cmd运行,自行修改红色部分,现表示下载前10天的gif文件

代码:
@echo off

::/ * list date */

set /a n=0
:loop
set /a n+=1

>t_day.vbs  echo ' Yesterday.vbs,  Version 1.01                          
>>t_day.vbs echo '                                                      
>>t_day.vbs echo ' Written by Rob van der Woude                         
>>t_day.vbs echo ' http://www.robvanderwoude.com                        
>>t_day.vbs echo '                                                     
>>t_day.vbs echo ' Calculate yesterday's date                           
>>t_day.vbs echo    dtmYesterday = DateAdd("d",-%n%,Date)       
>>t_day.vbs echo '                                                      
>>t_day.vbs echo ' Get yesterday's year                                 
>>t_day.vbs echo    strYear      = DatePart("yyyy",dtmYesterday)        
>>t_day.vbs echo '                                                    
>>t_day.vbs echo ' Get yesterday's month, add leading zero if necessary 
>>t_day.vbs echo    If DatePart("m",dtmYesterday) ^< 10 Then            
>>t_day.vbs echo 	   strMonth = 0 ^& DatePart("m",dtmYesterday)       
>>t_day.vbs echo    Else                                                
>>t_day.vbs echo 	   strMonth = DatePart("m",dtmYesterday)           
>>t_day.vbs echo    End If                                              
>>t_day.vbs echo '                                                      
>>t_day.vbs echo ' Get yesterday's day, add leading zero if necessary  
>>t_day.vbs echo    If DatePart("d",dtmYesterday) ^< 10 Then            
>>t_day.vbs echo	   strDay = 0 ^& DatePart("d",dtmYesterday)        
>>t_day.vbs echo    Else                                               
>>t_day.vbs echo	   strDay = DatePart("d",dtmYesterday)            
>>t_day.vbs echo    End If                                              
>>t_day.vbs echo '                                                     
>>t_day.vbs echo ' Format output for yesterday                          
>>t_day.vbs echo   strYest = strYear ^& strMonth ^& strDay             
>>t_day.vbs echo '                                                     
>>t_day.vbs echo ' echo                                                 
>>t_day.vbs echo Wscript.echo( strYest )   
                             
for /f "delims=" %%i in ('cscript.exe //nologo t_day.vbs') do echo %%i>>tmp.txt

if %n% neq 10 goto :loop


::/ * get htm * /
for /f "delims=" %%i in (tmp.txt) do (
				setlocal ENABLEDELAYEDEXPANSION
				set n=%%i
				curl -o !n!.htm http://www.wulffmorgenthaler.com/thestrip.asp?cDay=!n:~-2!^&cMonth=!n:~4,2!^&cYear=!n:~0,4!
				endlocal
)

::/ * get gif * /
for /f "tokens=4 delims==" %%i in ('findstr "log" *.htm') do (
				setlocal ENABLEDELAYEDEXPANSION
				set m=%%i
				curl -o !m:~5,-5! http://www.wulffmorgenthaler.com/!m:~1,-5!
				endlocal
)

::/ * clean * /
del *.htm tmp.txt 2>nul

参考资料
【原创】教你学用CURL --- 命令行浏览器
=========================================================
下载
curl


真强啊, 真的可以下... 多谢多谢.

就是速度好慢, 有没有什么办法?

另外, hitme能不能把这个再改进一下??

现在好像得先下载好设置的天数的HTM, 然后才一个个下GIF, 有没有办法让他下一个HTM就下这个HTM的GIF, 然后就直接删除这个HTM?
否则要抓整站的话,下了半天还是HTM啊... 另外打开这个目录肯定有几千个文件机器都要死了...

现在是设置为10天的, 如果想下载所有的, 应该怎么设??
想了半天还是问一下好, 万一设错了, 用这东西又得重新来过了...

此帖于 2005-06-02 13:57:31 被 C.K dEsIgn 编辑. .
qmsrobin
 
qmsrobin 的头像
热心会员
 
资 料:
注册日期: Jun 2004
帖子: 6,038 声望值: 4
精华: 0,解答: 8
#9 旧 2005-06-02, 13:35:28 默认
qmsrobin 当前离线  

学习中。。。


去留无意静观那后庭花开花落;
宠辱不惊笑看那天空云卷云舒。
-------------------------------
hitme
 
hitme 的头像
支柱会员
 
资 料:
注册日期: Oct 2001
帖子: 6,489 声望值: 2
精华: 38,解答: 6
#10 旧 2005-06-02, 14:35:39 默认
hitme 当前离线  

引用:
作者: C.K dEsIgn
真强啊, 真的可以下... 多谢多谢.

就是速度好慢, 有没有什么办法?

另外, hitme能不能把这个再改进一下??

现在好像得先下载好设置的天数的HTM, 然后才一个个下GIF, 有没有办法让他下一个HTM就下这个HTM的GIF, 然后就直接删除这个HTM?
否则要抓整站的话,下了半天还是HTM啊... 另外打开这个目录肯定有几千个文件机器都要死了...

现在是设置为10天的, 如果想下载所有的, 应该怎么设??
想了半天还是问一下好, 万一设错了, 用这东西又得重新来过了...
好,把get htm 和get gif段落嵌套起来。get htm->get gif->del htm
代码:
::/ * get htm&gif * /
for /f "delims=" %%i in (tmp.txt) do (
				setlocal ENABLEDELAYEDEXPANSION
				set n=%%i
				curl -o !n!.htm http://www.wulffmorgenthaler.com/thestrip.asp?cDay=!n:~-2!^&cMonth=!n:~4,2!^&cYear=!n:~0,4!
				
				for /f "tokens=4 delims==" %%j in ('findstr "log" *.htm') do (
				set m=%%j
				curl -o !m:~5,-5! http://www.wulffmorgenthaler.com/!m:~1,-5!
				)
				del *.htm
				endlocal
)
好象是每日一图,设为1000好了
可以分次进行啊
0->100
101->200
...

此帖于 2005-06-02 14:46:33 被 hitme 编辑. .
C.K dEsIgn
 
C.K dEsIgn 的头像
待认证激活
 
资 料:
注册日期: Sep 2001
帖子: 1,624 声望值: 0
精华: 0,解答: 1
#11 旧 2005-06-02, 14:46:26 默认
C.K dEsIgn 当前离线  

引用:
作者: hitme
好,把get htm 和get gif段落嵌套起来。get htm->get gif->del htm
代码:
::/ * get htm&gif * /
for /f "delims=" %%i in (tmp.txt) do (
				setlocal ENABLEDELAYEDEXPANSION
				set n=%%i
				curl -o !n!.htm http://www.wulffmorgenthaler.com/thestrip.asp?cDay=!n:~-2!^&cMonth=!n:~4,2!^&cYear=!n:~0,4!
				
				for /f "tokens=4 delims==" %%j in ('findstr "log" *.htm') do (
				set m=%%j
				curl -o !m:~5,-5! http://www.wulffmorgenthaler.com/!m:~1,-5!
				)
				del *.htm
				endlocal
)
好象是每日一图,设为1000好了
好像这是起始, 不知道有没有用,还是设为1000?? http://www.wulffmorgenthaler.com/thestrip.asp?cDay=24&cMonth=05&cYear=2002

hitme能否把完整修改好的再发一个附件上来??
hitme
 
hitme 的头像
支柱会员
 
资 料:
注册日期: Oct 2001
帖子: 6,489 声望值: 2
精华: 38,解答: 6
#12 旧 2005-06-02, 14:49:10 默认
hitme 当前离线  

引用:
作者: C.K dEsIgn
好像这是起始 http://www.wulffmorgenthaler.com/thestrip.asp?cDay=24&cMonth=05&cYear=2002

hitme能否把完整修改好的再发一个附件上来??
懒惰啊,打倒 ~
不会vbs,列表date部分效率极低,等sammy来改.. :blush;
上传的附件
文件类型: rar get_gif.rar (809 字节, 13 次查看)
C.K dEsIgn
 
C.K dEsIgn 的头像
待认证激活
 
资 料:
注册日期: Sep 2001
帖子: 1,624 声望值: 0
精华: 0,解答: 1
#13 旧 2005-06-02, 14:50:35 默认
C.K dEsIgn 当前离线  

引用:
作者: hitme
懒惰啊,打倒 ~
不是懒惰,是怕弄错, 而且不懂程序啊, 多谢, 设置成1000没问题吧

05-24-2002开始
hitme
 
hitme 的头像
支柱会员
 
资 料:
注册日期: Oct 2001
帖子: 6,489 声望值: 2
精华: 38,解答: 6
#14 旧 2005-06-02, 14:52:17 默认
hitme 当前离线  

引用:
作者: C.K dEsIgn
不是懒惰,是怕弄错, 而且不懂程序啊, 多谢, 设置成1000没问题吧

05-24-2002开始
3年零几天,差不多1100
C.K dEsIgn
 
C.K dEsIgn 的头像
待认证激活
 
资 料:
注册日期: Sep 2001
帖子: 1,624 声望值: 0
精华: 0,解答: 1
#15 旧 2005-06-02, 14:55:14 默认
C.K dEsIgn 当前离线  

速度好慢, 龟速执行中。... 多谢 hitme
发表新主题 关闭主题

主题工具

论坛规则  发帖规则
不可以发表主题
不可以回复帖子
不可以上传附件
不可以编辑自己的帖子
论坛启用 vB 代码
版面启用 表情符号
版面启用 [IMG] 代码
版面禁用 HTML 代码


所有时间均为北京时间, 现在的时间是 19:08:48.

本论坛带宽由迅通网络提供
SSL证书由TrustAsia提供

Copyright © 2000 - 2019 ClassiClub Forum All Rights Reserved.
粤ICP备09123456号