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

[文本处理] 批处理怎么提取本地HTML文件的图片链接

本帖最后由 zzz 于 2016-8-8 19:10 编辑

如题,或者说,哪个第三方工具可以利用正则来提取链接?

比如 HTML 代码

<div><div><div><p><img align="absMiddle" src="https://img.alicdn.com/imgextra/i4/2622073366/TB2gT8ihXXXXXcnXXXXXXXXXXXX_!!2622073366.png" /></p><p><img align="absMiddle" src="https://img.alicdn.com/imgextra/i2/2622073366/TB27OA7gVXXXXbtXpXXXXXXXXXX_!!2622073366.jpg" /></p><p><img align="absMiddle" src="https://img.alicdn.com/imgextra/i4/2622073366/TB2hj4lhXXXXXbLXXXXXXXXXXXX_!!2622073366.jpg" /></p><p><img align="absMiddle" src="https://img.alicdn.com/imgextra/i1/2622073366/TB2Fn78gVXXXXasXpXXXXXXXXXX_!!2622073366.png" /></p><p><img align="absMiddle" height="493" src="https://img.alicdn.com/imgextra/i1/2622073366/TB2Z54xhXXXXXXtXXXXXXXXXXXX_!!2622073366.png" width="755" /></p>

提取出链接
  1. https://img.alicdn.com/imgextra/i4/2622073366/TB2gT8ihXXXXXcnXXXXXXXXXXXX_!!2622073366.png
  2. https://img.alicdn.com/imgextra/i1/2622073366/TB2Z54xhXXXXXXtXXXXXXXXXXXX_!!2622073366.png
复制代码
.....

HTML代码并没有被格式化,杂乱的代码
1

评分人数

    • pcl_test: 发帖前先使用论坛搜索PB -2

TOP

回复 2# pcl_test


    你在逗我?

TOP

sed怎么提取html中的图片链接

比如<img src="http://www.baidu.com/d.jpg">

提取http://www.baidu.com/d.jpg

TOP

本帖最后由 wskwfkbdn 于 2016-8-8 22:48 编辑

grep 只能匹配行,任何第三方都不能直接搞定,楼主还是考虑一下for的截取

推荐一种方法纯p实现  把引号用set替换成换行符,echo %%x|find /i "http"

TOP

回复 4# wskwfkbdn
  1. grep -Po "https://[^\"]+\.png" 1.html
复制代码
你也试试看

TOP

  1. sed "s#.* src=.\([^\"]\+\)\".*#\1#g" 1.html
复制代码

TOP

回复 7# GNU


    恩,thanks,但是只获取了一个图片链接。我想都获取到

TOP

回复 5# wskwfkbdn


    恩,我已经用纯批写出来了。但是由于for最多只能截取31个。头疼啊,一行代码过长的话,图片链接都不能全部获取到

TOP

回复 8# zzz


    6楼那个试过了吗?

TOP

本帖最后由 wskwfkbdn 于 2016-8-8 22:55 编辑

回复 9# zzz


    修正回复内容晚了,我是想说

推荐一种方法纯p实现  把引号用set替换成换行符,echo 变量|findstr /i "^http"

TOP

本帖最后由 pcl_test 于 2016-8-9 08:51 编辑
  1. powershell -c "([regex]'https?://[^\"]+').Matches($(type '1.html'))^|%%{$_.Value}"
  2. pause
复制代码

TOP

本帖最后由 xxpinqz 于 2016-8-9 00:24 编辑
  1. @echo off
  2. %1(for /f "delims=" %%a in ('%0 :^|findstr /bic:"https://"') do echo,%%a)&pause&exit /b
  3. for /f "delims=" %%a in ('findstr /ic:"https://" 1.html') do for %%b in (%%a) do echo,%%~b
复制代码
初学BAT,非专业。代码不适当之处还望前辈们多多指点。在此表示感谢!

TOP

本帖最后由 pcl_test 于 2016-8-9 08:29 编辑
  1. mshta http://bathome.net/s/hta/ "type('1.html').match(/https?:\/\/[^\""]+/g).join('\r\n')"
  2. pause
复制代码

TOP

回复 6# GNU


    格式化的代码,用此命令正常。但是未格式化的代码,一个都匹配不出来

TOP

返回列表