[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] [已解决]批处理如何从网页代码中提取图片地址另存到文本?

例如,原网页源代码如下:
  1. <TABLE cellSpacing=0 cellPadding=0 border=0>
  2. <TBODY>
  3. <TR></TR>
  4. <TR>
  5. <TD vAlign=top width=95 height=95>
  6. <TABLE cellSpacing=0 cellPadding=0 width=95 border=0>
  7. <TBODY>
  8. <TR>
  9. <TD vAlign=top align=middle width=75 height=95><A class=linkImg
  10. href="/phoinfo/EF23922CFD54D6216575A84D16CC9E8DDT/A636ACC2EDDA4F9C9C8FF0D515E4A5F4DS"><IMG
  11. class=photoBorder id=EF23922CFD54D6216575A84D16CC9E8DDT
  12. title=001 onmouseout=closedialog(event,this);
  13. src="http://photo1.bababian.com/upload13/20080919/EF23922CFD54D6216575A84D16CC9E8D_75.jpg"
  14. name=setphoto></A></TD>
  15. <TD style="FONT-SIZE: 12px; FONT-FAMILY: Arial, Helvetica, sans-serif"
  16. width=20>    </TD></TR></TBODY></TABLE></TD>
  17. <TD vAlign=top width=95 height=95>
  18. <TABLE cellSpacing=0 cellPadding=0 width=95 border=0>
  19. <TBODY>
  20. <TR>
  21. <TD vAlign=top align=middle width=75 height=95><A class=linkImg
  22. href="/phoinfo/A66133862742F7EA832FAF9C4B11B43FDT/A636ACC2EDDA4F9C9C8FF0D515E4A5F4DS"><IMG
  23. class=photoBorder id=A66133862742F7EA832FAF9C4B11B43FDT
  24. title=002 onmouseout=closedialog(event,this);
  25. src="http://photo1.bababian.com/upload13/20080919/A66133862742F7EA832FAF9C4B11B43F_75.jpg"
  26. name=setphoto></A></TD>
  27. <TD style="FONT-SIZE: 12px; FONT-FAMILY: Arial, Helvetica, sans-serif"
  28. width=20>    </TD></TR></TBODY></TABLE></TD>
  29. <TD vAlign=top width=95 height=95>
  30. <TABLE cellSpacing=0 cellPadding=0 width=95 border=0>
  31. <TBODY>
  32. <TR>
  33. <TD vAlign=top align=middle width=75 height=95><A class=linkImg
  34. href="/phoinfo/5AB4224E589EE3B6E5BED440EA1C5FD4DT/A636ACC2EDDA4F9C9C8FF0D515E4A5F4DS"><IMG
  35. class=photoBorder id=5AB4224E589EE3B6E5BED440EA1C5FD4DT
  36. title=003 onmouseout=closedialog(event,this);
  37. src="http://photo1.bababian.com/upload13/20080919/5AB4224E589EE3B6E5BED440EA1C5FD4_75.jpg"
  38. name=setphoto></A></TD>
  39. <TD style="FONT-SIZE: 12px; FONT-FAMILY: Arial, Helvetica, sans-serif"
  40. width=20>    </TD></TR></TBODY></TABLE></TD>
  41. <TD vAlign=top width=95 height=95>
  42. <TABLE cellSpacing=0 cellPadding=0 width=95 border=0>
  43. <TBODY>
  44. <TR>
  45. <TD vAlign=top align=middle width=75 height=95><A class=linkImg
  46. href="/phoinfo/A760F4EC50162AEA524E3276B8DF2E95DT/A636ACC2EDDA4F9C9C8FF0D515E4A5F4DS"><IMG
  47. class=photoBorder id=A760F4EC50162AEA524E3276B8DF2E95DT
  48. title=004 onmouseout=closedialog(event,this);
  49. src="http://photo1.bababian.com/upload13/20080919/A760F4EC50162AEA524E3276B8DF2E95_75.jpg"
  50. name=setphoto></A></TD>
  51. <TD style="FONT-SIZE: 12px; FONT-FAMILY: Arial, Helvetica, sans-serif"
  52. width=20>    </TD></TR></TBODY></TABLE></TD>
  53. <TD vAlign=top width=95 height=95>
  54. <TABLE cellSpacing=0 cellPadding=0 width=95 border=0>
  55. <TBODY>
  56. <TR>
  57. <TD vAlign=top align=middle width=75 height=95><A class=linkImg
  58. href="/phoinfo/EFCC42B5A9F5D315AFD37ACE66B70247DT/A636ACC2EDDA4F9C9C8FF0D515E4A5F4DS"><IMG
  59. class=photoBorder id=EFCC42B5A9F5D315AFD37ACE66B70247DT
  60. title=005 onmouseout=closedialog(event,this);
  61. src="http://photo1.bababian.com/upload13/20080919/EFCC42B5A9F5D315AFD37ACE66B70247_75.jpg"
  62. name=setphoto></A></TD></TR></TBODY></TABLE></TD>
  63. <TR></TR>
  64. <TR>
  65. <TD vAlign=top width=95 height=95>
  66. <TABLE cellSpacing=0 cellPadding=0 width=95 border=0>
  67. <TBODY>
  68. <TR>
  69. <TD vAlign=top align=middle width=75 height=95><A class=linkImg
  70. href="/phoinfo/1A4F387882E90149942754220858D67ADT/A636ACC2EDDA4F9C9C8FF0D515E4A5F4DS"><IMG
  71. class=photoBorder id=1A4F387882E90149942754220858D67ADT
  72. title=006 onmouseout=closedialog(event,this);
  73. src="http://photo1.bababian.com/upload13/20080919/1A4F387882E90149942754220858D67A_75.jpg"
  74. name=setphoto></A></TD>
  75. <TD style="FONT-SIZE: 12px; FONT-FAMILY: Arial, Helvetica, sans-serif"
  76. width=20>    </TD></TR></TBODY></TABLE></TD>
  77. <TD vAlign=top width=95 height=95>
  78. <TABLE cellSpacing=0 cellPadding=0 width=95 border=0>
  79. <TBODY>
  80. <TR>
  81. <TD vAlign=top align=middle width=75 height=95><A class=linkImg
  82. href="/phoinfo/159199B9EC7DCF2218011DC9515AA70ADT/A636ACC2EDDA4F9C9C8FF0D515E4A5F4DS"><IMG
  83. class=photoBorder id=159199B9EC7DCF2218011DC9515AA70ADT
  84. title=007 onmouseout=closedialog(event,this);
  85. src="http://photo1.bababian.com/upload13/20080919/159199B9EC7DCF2218011DC9515AA70A_75.jpg"
  86. name=setphoto></A></TD>
  87. <TD style="FONT-SIZE: 12px; FONT-FAMILY: Arial, Helvetica, sans-serif"
  88. width=20>    </TD></TR></TBODY></TABLE></TD>
  89. <TD vAlign=top width=95 height=95>
  90. <TABLE cellSpacing=0 cellPadding=0 width=95 border=0>
  91. <TBODY>
  92. <TR>
  93. <TD vAlign=top align=middle width=75 height=95><A class=linkImg
  94. href="/phoinfo/8CFF33CD16EE371998F35178D5D5A215DT/A636ACC2EDDA4F9C9C8FF0D515E4A5F4DS"><IMG
  95. class=photoBorder id=8CFF33CD16EE371998F35178D5D5A215DT
  96. title=008 onmouseout=closedialog(event,this);
  97. src="http://photo1.bababian.com/upload13/20080919/8CFF33CD16EE371998F35178D5D5A215_75.jpg"
复制代码


我想提取其中的图片地址提取出来输出到一个txt文件中去,结果如下
  1. http://photo1.bababian.com/upload13/20080919/EF23922CFD54D6216575A84D16CC9E8D_75.jpg
  2. http://photo1.bababian.com/upload13/20080919/A66133862742F7EA832FAF9C4B11B43F_75.jpg
  3. http://photo1.bababian.com/upload13/20080919/5AB4224E589EE3B6E5BED440EA1C5FD4_75.jpg
  4. http://photo1.bababian.com/upload13/20080919/A760F4EC50162AEA524E3276B8DF2E95_75.jpg
  5. http://photo1.bababian.com/upload13/20080919/EFCC42B5A9F5D315AFD37ACE66B70247_75.jpg
  6. http://photo1.bababian.com/upload13/20080919/1A4F387882E90149942754220858D67A_75.jpg
  7. http://photo1.bababian.com/upload13/20080919/159199B9EC7DCF2218011DC9515AA70A_75.jpg
  8. .......
复制代码



请问高手怎么写?我不太会批处理。
1

评分人数

    • hanyeguxing: 感谢给帖子标题标注[已解决]字样PB + 2

请问如果楼主的代码是杂乱的,如何提取其中的图片地址?

TOP

wfr.exe、网页文件、批处理 放在同一目录下运行,没理由不行啊。
  1. @(type 251.htm|wfr /r:"(.*src\=\"^|\"\s.*)" /t|findstr "^http.*\.jpg$">list.txt)&&start list.txt
复制代码
把这里的251.htm改为你的网页文件的名字。
心绪平和,眼藏静谧。

TOP

请问poso版主那个wrf.exe怎么使用?下载下来放在哪里才能作用?
我把你的wrf.exe放在网页文件和批处理文件同一个文件夹下,运行批处理出现“找不到结果”

TOP

从上面看来,管理员真的太不容易了,虽然我提的问题少,也没有学习到什么,我还是由衷的感谢各位管理员和热心帮助他人的老师们,祝你们平安快乐!!
帮助别人是快乐吧?
被人帮助是幸福吧?
帮助别人是快乐
被人帮助是幸福

TOP

  1. @(type 251.htm|wfr /r:"(.*src\=\"^|\"\s.*)" /t|findstr "^http.*\.jpg$">list.txt)&&start list.txt
复制代码
需要WFR.EXE:http://bbs.bathome.net/thread-1909-1-1.html

[ 本帖最后由 pusofalse 于 2008-10-5 17:53 编辑 ]
心绪平和,眼藏静谧。

TOP

哇,这次的改良版bat运算速度超快啊,准确率百分百,可以给个极品代号了。
再次感谢管理员大哥的帮忙!

TOP

  再来个效率大为提升的代码:
  1. @echo off
  2. cd.>list.txt
  3. for %%i in (*.htm) do (
  4.     (echo.&echo %%i 中的图片&echo.)>>list.txt
  5.     for /f "delims=" %%j in ('findstr /i "src=.*http://.*\.jpg" %%i 2^>nul') do (
  6.         set "str=%%j"
  7.         setlocal enabledelayedexpansion
  8.         set str=!str:"=!
  9.         set str=!str:*src=!
  10.         for /f "delims==> " %%k in ("!str!") do (
  11.             if /i "%%~xk"==".jpg" echo %%k>>list.txt
  12.         )
  13.         endlocal
  14.     )
  15. )
  16. start list.txt
复制代码
尺有所短寸有所长,学好批处理没商量;
考虑问题复杂化,解决问题简洁化。

心在天山,身老沧州。

TOP

  本以为你是觉得URL中含有问号和单引号而弃之不用,就帮你过滤了一下,原来你的本意是完全不用那些图片。那就把这些过滤掉吧,不过效率十分低下:
  1. @echo off
  2. cd.>list.txt
  3. for %%i in (*.htm) do (
  4.     (echo.&echo %%i 中的图片&echo.)>>list.txt
  5.     for /f "delims=" %%j in ('findstr /i "src=.*http://.*\.jpg" %%i 2^>nul') do (
  6.         set "str=%%j"
  7.         setlocal enabledelayedexpansion
  8.         set str=!str:"=!
  9.         set str=!str:*src=!
  10.         for /f "delims==> " %%k in ("!str!") do (
  11.             echo %%k|findstr /v "' ?">>list.txt
  12.         )
  13.         endlocal
  14.     )
  15. )
  16. start list.txt
复制代码
尺有所短寸有所长,学好批处理没商量;
考虑问题复杂化,解决问题简洁化。

心在天山,身老沧州。

TOP

管理员大哥你误会了,我的意思是吧红色部分全部删除掉不要

TOP

  在9楼代码的基础上,再过滤掉单引号和问号就可以了:
  1. @echo off
  2. cd.>list.txt
  3. for %%i in (*.htm) do (
  4.     (echo.&echo %%i 中的图片&echo.)>>list.txt
  5.     for /f "delims=" %%j in ('findstr /i "src=.*http://.*\.jpg" %%i 2^>nul') do (
  6.         set "str=%%j"
  7.         setlocal enabledelayedexpansion
  8.         set str=!str:"=!
  9.         set str=!str:*src=!
  10.         for /f "delims==>'? " %%k in ("!str!") do echo %%k>>list.txt
  11.         endlocal
  12.     )
  13. )
  14. start list.txt
复制代码
尺有所短寸有所长,学好批处理没商量;
考虑问题复杂化,解决问题简洁化。

心在天山,身老沧州。

TOP

管理员大哥,我博客上(http://highlove.blogbus.com)所有的图片都是用你给我的批处理程序处理图片外链的,确实省了我不少麻烦。
但那个批处理还有一点点瑕疵,就是提取出来的链接前面2个和后面3个我是不需要的,能否再帮我修正一下?我的博客是个图片博客,量多了麻烦也就多了,所以能快就快。谢谢

结果中的红色部分是不需要的,附件为rar文件。

251.htm 中的图片
http://myicon.poco.cn/4609/46093729_64.jpg?226271122
'http://image211.poco.cn/mypoco/myphoto/20081004/14/46093729200810041436233678101103548_013_120.jpg'
http://image211.poco.cn/mypoco/myphoto/20081004/14/46093729200810041436233678101103548_000_165.jpg
http://image211.poco.cn/mypoco/myphoto/20081004/14/46093729200810041436233678101103548_001_165.jpg
http://image211.poco.cn/mypoco/myphoto/20081004/14/46093729200810041436233678101103548_002_165.jpg
http://image211.poco.cn/mypoco/myphoto/20081004/14/46093729200810041436233678101103548_003_165.jpg
http://image211.poco.cn/mypoco/myphoto/20081004/14/46093729200810041436233678101103548_004_165.jpg
http://image211.poco.cn/mypoco/myphoto/20081004/14/46093729200810041436233678101103548_005_165.jpg
http://image211.poco.cn/mypoco/myphoto/20081004/14/46093729200810041436233678101103548_006_165.jpg
http://image211.poco.cn/mypoco/myphoto/20081004/14/46093729200810041436233678101103548_007_165.jpg
http://image211.poco.cn/mypoco/myphoto/20081004/14/46093729200810041436233678101103548_008_165.jpg
http://image211.poco.cn/mypoco/myphoto/20081004/14/46093729200810041436233678101103548_009_165.jpg
http://image211.poco.cn/mypoco/myphoto/20081004/14/46093729200810041436233678101103548_010_165.jpg
http://image211.poco.cn/mypoco/myphoto/20081004/14/46093729200810041436233678101103548_011_165.jpg
http://image211.poco.cn/mypoco/myphoto/20081004/14/46093729200810041436233678101103548_012_165.jpg
http://image211.poco.cn/mypoco/myphoto/20081004/14/46093729200810041436233678101103548_013_165.jpg
'http://image211.poco.cn/mypoco/myphoto/20081004/15/46093729200810041506102852951037623_024_120.jpg'
'http://image211.poco.cn/mypoco/myphoto/20081004/15/46093729200810041505002748918257129_014_120.jpg'
'http://image211.poco.cn/mypoco/myphoto/20081004/15/46093729200810041504357323631110317_019_120.jpg'

TOP

我要的就是这样的效果,太完美了,谢谢管理员大哥。

TOP

  解决6楼问题的代码如下:
  1. @echo off
  2. cd.>list.txt
  3. for %%i in (*.htm) do (
  4.     (echo.&echo %%i 中的图片&echo.)>>list.txt
  5.     for /f "delims=" %%j in ('findstr /i "src=.*http://.*\.jpg" %%i 2^>nul') do (
  6.         set "str=%%j"
  7.         setlocal enabledelayedexpansion
  8.         set str=!str:"=!
  9.         set str=!str:*src=!
  10.         for /f "delims==> " %%k in ("!str!") do echo %%k>>list.txt
  11.         endlocal
  12.     )
  13. )
  14. start list.txt
复制代码
  发现网页中存在一些不带网址、只有相对路径的jpg文件,不知道你是否需要,如果需要的话,把第二个for语句中findstr里的 .*http:// 字符串去掉即可。
尺有所短寸有所长,学好批处理没商量;
考虑问题复杂化,解决问题简洁化。

心在天山,身老沧州。

TOP

  6楼的网页代码和顶楼的网页代码格式已经大不一样,正在研究中。
尺有所短寸有所长,学好批处理没商量;
考虑问题复杂化,解决问题简洁化。

心在天山,身老沧州。

TOP

返回列表