[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]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

  观察网页代码,发现图片地址都是保存在以src=打头的行中,这样的话,只需要提取以src=打头的行,然后,再切分一下就可以了(假设网页代码保存在test.html文件中):
  1. @echo off
  2. cd.>list.txt
  3. for /f "delims== tokens=1*" %%i in ('findstr /b /i "src=" test.html 2^>nul') do (
  4.     set "str=%%j"
  5.     setlocal enabledelayedexpansion
  6.     set str=!str:"=!
  7.     echo !str!>>list.txt
  8.     endlocal
  9. )
  10. start list.txt
复制代码
尺有所短寸有所长,学好批处理没商量;
考虑问题复杂化,解决问题简洁化。

心在天山,身老沧州。

TOP

管理员哥哥,好像不行啊
是不是把网页源代码保存为list.txt,再做一个bat程序,里面粘贴你的程序代码。
list.txt  和 bat 文件放在同一个文件夹下面,运行bat就得到结果。
我的理解正确吗?

我按照上面的操作得到的list.txt 是空白文档,请问是什么问题呢?

TOP

不好意思,看错了,应该保存在test.html 里面才对

TOP

果然好用,谢谢管理员哥哥了。

TOP

如何从网页代码中提取图片地址另存到文本 2

昨天管理员先生给了个图片链接提取的批处理代码给我,确实很好用,在此再次向管理员先生深深表示感谢。

我现在还想就扩展一下这个bat的功能,希望管理员先生能帮我再修正一下。或者其他高手如果愿意,也请显露一下身手,谢谢。

我要求的是:

从几个下载下来的网页文件提取所有网页文件中的源代码中的图片链接(我是用来做外链图片的),统一写入一个txt文件里面。
效果如下:从我上传的附件提取里面的图片地址链接,然后写入一个list.txt文件中。

list.txt里面的内容举例如下显示:

1.html 中的图片
http://photo1.bababian.com/upload13/20080919/EF23922CFD54D6216575A84D16CC9E8D_75.jpg
http://photo1.bababian.com/upload13/20080919/A66133862742F7EA832FAF9C4B11B43F_75.jpg
http://photo1.bababian.com/upload13/20080919/5AB4224E589EE3B6E5BED440EA1C5FD4_75.jpg
http://photo1.bababian.com/upload13/20080919/5AB4224E589EE3B6E5BED440EA1C5FD4_75.jpg
.........
2.html 中的图片
[quote]http://photo1.bababian.com/upload13/20080919/EF23922CFD54D6216575A84D16CC9E8D_75.jpg
http://photo1.bababian.com/upload13/20080919/A66133862742F7EA832FAF9C4B11B43F_75.jpg
http://photo1.bababian.com/upload13/20080919/5AB4224E589EE3B6E5BED440EA1C5FD4_75.jpg
.........
3.html 中的图片
[quote]http://photo1.bababian.com/upload13/20080919/EF23922CFD54D6216575A84D16CC9E8D_75.jpg
http://photo1.bababian.com/upload13/20080919/A66133862742F7EA832FAF9C4B11B43F_75.jpg
http://photo1.bababian.com/upload13/20080919/5AB4224E589EE3B6E5BED440EA1C5FD4_75.jpg
.........
4.html 中的图片
http://photo1.bababian.com/upload13/20080919/EF23922CFD54D6216575A84D16CC9E8D_75.jpg
http://photo1.bababian.com/upload13/20080919/A66133862742F7EA832FAF9C4B11B43F_75.jpg
http://photo1.bababian.com/upload13/20080919/5AB4224E589EE3B6E5BED440EA1C5FD4_75.jpg
.........
5.html 中的图片
http://photo1.bababian.com/upload13/20080919/EF23922CFD54D6216575A84D16CC9E8D_75.jpg
http://photo1.bababian.com/upload13/20080919/A66133862742F7EA832FAF9C4B11B43F_75.jpg
http://photo1.bababian.com/upload13/20080919/5AB4224E589EE3B6E5BED440EA1C5FD4_75.jpg
.........


有瑕疵不要紧,只要能提取到链接然后输出到list.txt上面去就行了,希望管理员先生再帮一次忙,谢谢。

TOP

回复 6楼 的帖子

把2楼的代码中test.html改成*.html
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

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

心在天山,身老沧州。

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

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

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

  在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

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

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

  再来个效率大为提升的代码:
  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

返回列表