![]() 热心会员
|
几年前新房装修,网上四处搜寻装修效果图以及相关资料以作参考,最后在篱笆的一个子版块上找到不少人家装修过程中的图文记录,于是想把论坛里装修日记的图片整体收集下来,当时在坛子发帖求助,也得到hitme等几位坛友的帮助,收集到了部分图片。但是现在几年过去了,以前收集的图片似乎有些老,想重新收集一次,可惜网站改版后原来的代码已经没用了……
请问批处理达人,如何批量把论坛下的图片按日期目录归类保存下来? 网址:_http://bbs.libaclub.com/f_14.htm 感激不尽! |
||
![]() 有多少能力 就办多少事! |
![]() 超级会员
|
只是需要图片还是需要原样保留图文?
是需要每个帖子里的图还是指定某个范围的图? |
||
![]() TotalCommder、EveryThing、batch、AutoHotKey、EverEdit 精通Word、Excel、PPT的安装与卸载 熟练掌握VB、C++、SQL的拼读与缩写 |
![]() 热心会员
|
只要图片就好,范围就是子论坛下所有帖子内的图片。
比如这张图片 _http://clubfiles.libaclub.com/2011/08/16/21/33033659.jpg 我想保存的时候放在201108的文件夹,或者至少可以得到按照日期排序的图片url,这样我就知道哪些是新照片了。 |
||
![]() 超级会员
|
粗粗查看了一下
帖子里发的jpg文件路径居然是经过转换后才显示出来的 在网页源文件中根本没法直接获取 看不懂JS 第一回合就败下阵来鸟 ——只要把这个转换规则搞懂了,其他的问题倒是很好办 |
||
![]() 热心会员
|
这是原先已经失效的代码,我修改成现在的地址仍旧提取不到图片链接,水平有限啊。
代码:
@echo off curl -o #1.htm http://www.51tuangou.com/bbs/forumdisplay.php?^&forumid=8^&daysprune=1000^&sortorder=^&sortfield=lastpost^&perpage=30^&pagenumber=[1-78] setlocal ENABLEDELAYEDEXPANSION for /f "tokens=3-5 delims==" %%i in ('findstr "images/newwin" *.htm') do ( set n=%%i set m=%%j set l=%%k echo http://www.51tuangou.com/bbs/!n:~1!=!m!=!l:~0,-5!>>tmp1.txt ) endlocal for /f "delims=" %%i in (tmp1.txt) do ( curl %%i|findstr /i /r "clubfiles.51tuangou.com"|findstr /i "jpg">>tmp2.txt ) setlocal ENABLEDELAYEDEXPANSION for /f "tokens=2 delims==" %%i in (tmp2.txt) do ( set n=%%i echo !n:~1,-8!>>list.txt ) endlocal del tmp*.txt start list.txt |
||
![]() 超级会员
|
用批处理来抓网页数据
一般需要用到curl或wget 首先要把html文件下载到本机 然后从html文件中分析各种链接 再顺藤摸瓜 现在这个论坛的防止批量抓取图片真实url的措施做得非常到位 从html源文件中没法抓到附件中图片的真实下载地址 而是把网页中的相关数据通过js来转换,再在浏览器中显示出来 看不懂那些js都是什么意思 或许真实的url首先在网站数据库中经过了一番映射之后 再通过js来查询也说不定 我整理了一份“图片真实url与网页源文件中相关代码的对应关系”的列表 并附上相关的js源文件 希望有懂的人来分析一下真实url该如何从网页源文件中获取 |
||
![]() 热心会员
|
看似规律的图片地址原来也内藏机关啊!主题通过JS控制再输出htm,图片有没有经过数据库映射搞不清楚,
我早上看了一下你传的对应关系表,比如这三张图片 代码:
http://clubfiles.libaclub.com/2010/10/07/00/29553011.jpg <SCRIPT LANGUAGE="JavaScript">xcount(">@P<//////////////附件//////////////>@P<>koe\"qpa?jvvr8--anw`dkngq,nk`canw`,amo-0232-32-25-22-0;771233,hre\"`mpfgp?2<");</SCRIPT></p> http://clubfiles.libaclub.com/2010/10/07/00/29553062.jpg <SCRIPT LANGUAGE="JavaScript">xcount(">@P<//////////////附件//////////////>@P<>koe\"qpa?jvvr8--anw`dkngq,nk`canw`,amo-0232-32-25-22-0;771240,hre\"`mpfgp?2<");</SCRIPT></p> http://clubfiles.libaclub.com/2010/10/07/00/29553082.jpg <SCRIPT LANGUAGE="JavaScript">xcount(">@P<//////////////附件//////////////>@P<>koe\"qpa?jvvr8--anw`dkngq,nk`canw`,amo-0232-32-25-22-0;7712:0,hre\"`mpfgp?2<");</SCRIPT></p> 我再打开通过curl download到的子版块分页htm文件看了一下,应该是可以通过批处理拿下所有分页主题的。 拿3个置顶的主题举例,基本可以得到子版块下各主题的真实链接: 代码:
<a href="member.php?sessionhash=&uid=4219483" class=black target=_blank>牵手陌陌 </a><br> <a href=topic.php?sessionhash=&topicId=5678065&page=3&forumId=14&goto=lastpost class=black target=_blank class=postdate title='2011-08-17 17:35'>08-17 17:35</a> <a href="member.php?sessionhash=&uid=4218049" class=black target=_blank>小雅爱美丽 </a><br> <a href=topic.php?sessionhash=&topicId=5707595&page=5&forumId=14&goto=lastpost class=black target=_blank class=postdate title='2011-08-24 15:01'>08-24 15:01</a> <a href="member.php?sessionhash=&uid=4224108" class=black target=_blank>07558340 </a><br> <a href=topic.php?sessionhash=&topicId=5678079&page=5&forumId=14&goto=lastpost class=black target=_blank class=postdate title='2011-08-24 19:40'>08-24 19:40</a> _http://bbs.libaclub.com/topic.php?sessionhash=&topicId=5707595&page=5 _http://bbs.libaclub.com/topic.php?sessionhash=&topicId=5678079&page=5 这个算不算也是一个思路?至于主题内图片做了怎样的防抓取措施,我也是看不明白。得到这几个链接怎样用代码体现下载到主题,我搞不定 没法往下分析。。。 |
||
![]() 热心会员
|
又单独下了一个主题的htm,原来上面我看到的只是门外,进到屋里才发现真正的机关。
代码:
<SCRIPT LANGUAGE="JavaScript">xcount(">@P<//////////////附件//////////////>@P<>koe\"qpa?jvvr8--anw`dkngq,nk`canw`,amo-0233-2:-27-30-10;3;127,hre\"`mpfgp?2<");</SCRIPT> |
||
![]() 高级会员
|
如果有个对应的链接表基本上无解了- -
|
||
![]() 热心会员
|
url只是用一个简单的函数做了一下字符转换。
PHP 代码:
代码:
<SCRIPT LANGUAGE="JavaScript">xcount(">@P<//////////////附件//////////////>@P<>koe\"qpa?jvvr8--anw`dkngq,nk`canw`,amo-0232-32-25-22-0;771233,hre\"`mpfgp<?2");</SCRIPT></p> 位异或这个操作符批处理里面也是有的,所以这个转换并不是很大的问题,不过我不太熟批处理的东西,所以对于处理其他的东西就比较郁闷了,看看有没有其他的批处理高手进来帮你改一下吧。 此帖于 2011-08-29 04:31:01 被 不死鸟 编辑. . |
||
![]() 我出生时很乖,长大后很帅,MM见我就不拽,媚眼使劲向我抛,可惜我有一点坏,向来是玩过就甩,所以至今单身你勿奇怪,想追帅哥的美女请赶快…… ^o^ ! ---------------------------------------------- 无从了解凤凰涅磐时的痛苦,但我清楚那是成长路上不可少的经历! |
![]() 热心会员
|
感谢不死鸟解毒,看来复活有望?!召唤namejm发功,板凳翘首~~
|
||
![]() 超级会员
|
10楼不死鸟从原理上揭示了转码规律
给了我不少提示 摸索了一下 终于找到了一个更加简洁的方法 经过测试已经成功 代码将在今天晚些时候出炉 现在想问下楼主 你所说的按照日期归类 是按照"年月日"一个文件夹呢 还是按照"年\月\日"这样建立三级文件夹? 或者还是其他方式? 请给个明确的说法 |
||
![]() 热心会员
|
LZ前面说用“年月”做目录,红字部分后半段位置弄错了,改了一下。
|
||
![]() 热心会员
|
引用:
如这张照片: _http://clubfiles.libaclub.com/2011/08/16/21/33033659.jpg …… 下载下来以后 2011年8月16日的都放到这个文件夹,这样下载到的图片可以得到很好的归类 不用人工筛选,就是这个想法。 刚注意到namejm与不死鸟两位的回帖时间,非常感动,注意休息!闲暇时再看也不妨哦。 此帖于 2011-08-29 09:09:54 被 ping 编辑. . |
|||
![]() 超级会员
|
谢楼主关心
夜猫子当习惯了 凌晨的时候只测试了部分数据 把代码完善之后 现在正在做全程测试 办公室里的网速有点慢 准备一个白天都耗在测试上了 晚上会有结果的 如果没有什么意外的话 晚上能把调试好的代码发出来 说不定还会有一个完整的教程^_^ |
||