Board logo

标题: [文本处理] [已解决]批处理怎样提起网页源码中的图片链接? [打印本页]

作者: 游泳的鱼    时间: 2013-2-28 11:14     标题: [已解决]批处理怎样提起网页源码中的图片链接?

这些图片,直接通过下载工具无法批量下载,不知道批处理能不能解决这个问题。

源码如下(只贴出部分):
  1. <script type="text/javascript" language="javascript">
  2. var pictureConfig = {
  3.         album: {'DB0FF071-28B6-460B-A131-3CB66442FDF1':{max:'http://images4.c-ctrip.com/target/hotel/127000/126098/DB0FF071-28B6-460B-A131-3CB66442FDF1_550_412.jpg',min:'http://images4.c-ctrip.com/target/hotel/127000/126098/DB0FF071-28B6-460B-A131-3CB66442FDF1_100_75.jpg',title:'大堂',info:'<a href="http://hotels.ctrip.com/pic-pidDB0FF071-28B6-460B-A131-3CB66442FDF1/126098.html" name="needTraceCode">丁香花主题酒店(成都沸城店)大堂</a>'},'66DB3539-43A5-49AC-92E6-626889C67BBF':{max:'http://images4.c-ctrip.com/target/hotel/127000/126098/66DB3539-43A5-49AC-92E6-626889C67BBF_550_412.jpg',min:'http://images4.c-ctrip.com/target/hotel/127000/126098/66DB3539-43A5-49AC-92E6-626889C67BBF_100_75.jpg',title:'商务标间',info:'<a href="http://hotels.ctrip.com/pic-pid66DB3539-43A5-49AC-92E6-626889C67BBF/126098.html" name="needTraceCode">商务标间</a>'},'D0D7388D-F83D-4565-9095-9BCFBEF99D6D':{max:'http://images4.c-ctrip.com/target/hotel/127000/126098/D0D7388D-F83D-4565-9095-9BCFBEF99D6D_550_412.jpg',min:'http://images4.c-ctrip.com/target/hotel/127000/126098/D0D7388D-F83D-4565-9095-9BCFBEF99D6D_100_75.jpg',title:'商务标间',info:'<a href="http://hotels.ctrip.com/pic-pidD0D7388D-F83D-4565-9095-9BCFBEF99D6D/126098.html" name="needTraceCode">商务标间</a>'},'E332F82C-A344-48F1-BCFA-61DCAF150CF9':{max:'http://images4.c-ctrip.com/target/hotel/127000/126098/E332F82C-A344-48F1-BCFA-61DCAF150CF9_550_412.jpg',min:'http://images4.c-ctrip.com/target/hotel/127000/126098/E332F82C-A344-48F1-BCFA-61DCAF150CF9_100_75.jpg',title:'商务标间',info:'<a href="http://hotels.ctrip.com/pic-pidE332F82C-A344-48F1-BCFA-61DCAF150CF9/126098.html" name="needTraceCode">商务标间</a>'},'5D19CF31-6DAF-452C-AA32-D8759AA9582D':{max:'http://images4.c-ctrip.com/target/hotel/127000/126098/5D19CF31-6DAF-452C-AA32-D8759AA9582D_550_412.jpg',min:'http://images4.c-ctrip.com/target/hotel/127000/126098/5D19CF31-6DAF-452C-AA32-D8759AA9582D_100_75.jpg',title:'商务标间',info:'<a href="http://hotels.ctrip.com/pic-pid5D19CF31-6DAF-452C-AA32-D8759AA9582D/126098.html" name="needTraceCode">商务标间</a>'},'2C860CEB-B5F1-4C7F-AFE7-AC6939A29FAC':{max:'http://images4.c-ctrip.com/target/hotel/127000/126098/2C860CEB-B5F1-4C7F-AFE7-AC6939A29FAC_550_412.jpg',min:'http://images4.c-ctrip.com/target/hotel/127000/126098/2C860CEB-B5F1-4C7F-AFE7-AC6939A29FAC_100_75.jpg',title:'商务标间',info:'<a href="http://hotels.ctrip.com/pic-pid2C860CEB-B5F1-4C7F-AFE7-AC6939A29FAC/126098.html" name="needTraceCode">商务标间</a>'},'3B4C052C-8B1D-45F6-ACFD-5328C4B02120':{max:'http://images4.c-ctrip.com/target/hotel/127000/126098/3B4C052C-8B1D-45F6-ACFD-5328C4B02120_550_412.jpg',min:'http://images4.c-ctrip.com/target/hotel/127000/126098/3B4C052C-8B1D-45F6-ACFD-5328C4B02120_100_75.jpg',title:'商务标间',info:'<a href="http://hotels.ctrip.com/pic-pid3B4C052C-8B1D-45F6-ACFD-5328C4B02120/126098.html" name="needTraceCode">商务标间</a>'},'58081BAD-DA8B-4232-A60A-74ABDA9C1AA3':{max:'http://images4.c-ctrip.com/target/hotel/127000/126098/58081BAD-DA8B-4232-A60A-74ABDA9C1AA3_550_412.jpg',min:'http://images4.c-ctrip.com/target/hotel/127000/126098/58081BAD-DA8B-4232-A60A-74ABDA9C1AA3_100_75.jpg',title:'商务标间',info:'<a href="http://hotels.ctrip.com/pic-pid58081BAD-DA8B-4232-A60A-74ABDA9C1AA3/126098.html" name="needTraceCode">商务标间</a>'}},
  4.         isOpen: false,
  5.         guid: "",
  6.         ifm360src:"about:blank"
  7.     }
  8. </script>
复制代码
需要提取的是max:后面的图片链接,烦请高手指教,谢谢。
作者: CrLf    时间: 2013-2-28 15:44

  1. @echo off
  2. (for /f "delims=" %%a in (a.txt) do (
  3. set "str=%%a"
  4. setlocal enabledelayedexpansion
  5. for %%b in (!str:{^=,!) do (
  6. for /f "tokens=1,2 delims='" %%c in ("%%b") do (
  7. if %%c==max: echo %%d
  8. )
  9. )
  10. ))>b.txt
  11. pause
复制代码

作者: 游泳的鱼    时间: 2013-2-28 15:44

回复 2# CrLf


    谢谢,马上试一下~
作者: 游泳的鱼    时间: 2013-2-28 15:47

谢谢了,测试成功了,非常感谢,~~~
作者: 游泳的鱼    时间: 2013-2-28 17:15

回复 2# CrLf


    您好,刚才测试成功了,现在又不行了,刚才测试的时候批处理运行完后会有一行是请按任意键继续,但是现在没有了,而且连接也提取不出来了~。请问是怎么回事呢?
作者: sxw    时间: 2013-2-28 18:40

用geturls工具啊
作者: apang    时间: 2013-2-28 18:59

回复 5# 游泳的鱼


    CrLf版主漏写一句:endlocal
你在5、6行之间插入这一句应该就可以了
作者: 游泳的鱼    时间: 2013-2-28 19:55

回复 7# apang
变成这个样子对吗:
  1. @echo off
  2. (for /f "delims=" %%a in (a.txt) do (
  3.         set "str=%%a"
  4.         setlocal enabledelayedexpansion
  5.         for %%b in (!str:{^=,!) do (
  6. endlocal
  7.                 for /f "tokens=1,2 delims='" %%c in ("%%b") do (
  8.                         if %%c==max: echo %%d
  9.                 )
  10.         )
  11. ))>b.txt
  12. pause
复制代码
运行就只显示了一个请按任意键继续,按了后就关闭窗口了,B.TXT文件还是创建了,但是没有网址的
作者: apang    时间: 2013-2-28 21:25

回复 8# 游泳的鱼


    看看源文件编码格式
作者: group    时间: 2013-3-1 00:19

大概是行太长了吧,借2楼代码改一下
  1. @echo off
  2. (for /f "delims=" %%a in (a.txt) do (
  3. for %%b in (%%a) do (
  4. set "str=^%%b$max:"
  5. setlocal enabledelayedexpansion
  6. for /f "delims='" %%c in ("!str:*max:=!") do echo %%c
  7. endlocal
  8. )
  9. ))>b.txt
  10. pause
复制代码

作者: 游泳的鱼    时间: 2013-3-1 10:51

回复 9# apang


   
charset=gb2312"
作者: 游泳的鱼    时间: 2013-3-1 11:07

回复 10# group

这下可以了,另外能不能加一个运行完了的提示呢?按照你的这个代码,不知道什么时候运行完,只能凭感觉完了后关闭窗口~
作者: 游泳的鱼    时间: 2013-3-1 11:59

每次运行都是刚开始几次可以提取,现在又不可以了,只创建了一个空白的B.tXT文件
作者: apang    时间: 2013-3-1 13:09

  1. Set FSO = CreateObject("Scripting.FileSystemObject")
  2. Text = FSO.OpenTextFile("a.txt",1).ReadAll
  3. With New RegExp
  4.    .Pattern = "max:'(.*?)'"
  5.    .Global = True
  6.    .IgnoreCase = True
  7.    For Each Match in .Execute(Text)
  8.       Str = Str & Match.SubMatches(0) & vbCrLf
  9.    Next
  10. End With
  11. FSO.CreateTextFile("b.txt",True).Write Str
  12. MsgBox "OK"
复制代码
试试vbs
作者: 游泳的鱼    时间: 2013-3-1 14:10

回复 14# apang


    谢谢您了,VBS的话我现在测试还可以,就不知道会不会出现以前的那个问题,刚开始几次可以,后来就不行了,继续测试中~再次感谢~~
作者: CrLf    时间: 2013-3-1 14:38

回复 15# 游泳的鱼


    可以把“行”和“不行”的样本各取一两个作为附件发上来
作者: 游泳的鱼    时间: 2013-3-1 15:56

回复 16# CrLf

超过限制了无法发送,我使用了两种方案,第一种是您在第二楼回复的,第二种是在14楼的兄弟弄的VBS方案。测试过程全部如下
1、新建两个文件夹,将bat和vbs文件分别放在两个文件夹中国;
2、将源码保存到记事本a.txt,然后分别运行bat和vbs文件,两个都能成功获取图片地址,生成了b.txt文件;
3、将两个文件夹中a.txt和b.txt文件删除,另外保存一个网页的源码,将新的源码分别保存到两个文件夹中;
4、分别运行bat和vbs文件,vbs能正确得到图片地址,而bat文件显示了按任意键继续后关闭bat窗口后只能得到b.txt文件,但是没有图片网址的。

上面这个流程测试了数次,都是这样,我个人认为应该不是代码问题,但是不晓得是哪个方面的问题了。
作者: BAT-VBS    时间: 2013-3-1 23:15

回复 17# 游泳的鱼


    可以把大附件上传到网盘
作者: 游泳的鱼    时间: 2013-3-4 11:01

回复 16# CrLf


    刚测试了一下,将“行”和“不行”的样本传了上来~~

http://pan.baidu.com/share/link?shareid=381064&uk=4112408364
作者: CrLf    时间: 2013-3-4 15:45

回复 19# 游泳的鱼


    单行太长,纯批无法处理,要么调用第三方,要么用vbs
作者: 游泳的鱼    时间: 2013-3-11 09:13

回复 20# CrLf


    谢谢老大,忘记回复了,谢谢了~~




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2