标题: [文本处理] 批处理怎么提取本地HTML文件的图片链接 [打印本页]
作者: zzz 时间: 2016-8-8 19:04 标题: 批处理怎么提取本地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>
提取出链接- https://img.alicdn.com/imgextra/i4/2622073366/TB2gT8ihXXXXXcnXXXXXXXXXXXX_!!2622073366.png
- https://img.alicdn.com/imgextra/i1/2622073366/TB2Z54xhXXXXXXtXXXXXXXXXXXX_!!2622073366.png
复制代码
.....
HTML代码并没有被格式化,杂乱的代码
作者: pcl_test 时间: 2016-8-8 19:14
grep
http://www.bathome.net/s/tool/index.html
作者: zzz 时间: 2016-8-8 21:08
回复 2# pcl_test
你在逗我?
作者: zzz 时间: 2016-8-8 21:17 标题: sed怎么提取html中的图片链接
比如<img src="http://www.baidu.com/d.jpg">
提取http://www.baidu.com/d.jpg
作者: wskwfkbdn 时间: 2016-8-8 22:06
本帖最后由 wskwfkbdn 于 2016-8-8 22:48 编辑
grep 只能匹配行,任何第三方都不能直接搞定,楼主还是考虑一下for的截取
推荐一种方法纯p实现 把引号用set替换成换行符,echo %%x|find /i "http"
作者: GNU 时间: 2016-8-8 22:19
回复 4# wskwfkbdn - grep -Po "https://[^\"]+\.png" 1.html
复制代码
你也试试看
作者: GNU 时间: 2016-8-8 22:25
- sed "s#.* src=.\([^\"]\+\)\".*#\1#g" 1.html
复制代码
作者: zzz 时间: 2016-8-8 22:37
回复 7# GNU
恩,thanks,但是只获取了一个图片链接。我想都获取到
作者: zzz 时间: 2016-8-8 22:38
回复 5# wskwfkbdn
恩,我已经用纯批写出来了。但是由于for最多只能截取31个。头疼啊,一行代码过长的话,图片链接都不能全部获取到
作者: GNU 时间: 2016-8-8 22:42
回复 8# zzz
6楼那个试过了吗?
作者: wskwfkbdn 时间: 2016-8-8 22:54
本帖最后由 wskwfkbdn 于 2016-8-8 22:55 编辑
回复 9# zzz
修正回复内容晚了,我是想说
推荐一种方法纯p实现 把引号用set替换成换行符,echo 变量|findstr /i "^http"
作者: pcl_test 时间: 2016-8-9 00:03
本帖最后由 pcl_test 于 2016-8-9 08:51 编辑
- powershell -c "([regex]'https?://[^\"]+').Matches($(type '1.html'))^|%%{$_.Value}"
- pause
复制代码
作者: xxpinqz 时间: 2016-8-9 00:22
本帖最后由 xxpinqz 于 2016-8-9 00:24 编辑
- @echo off
- %1(for /f "delims=" %%a in ('%0 :^|findstr /bic:"https://"') do echo,%%a)&pause&exit /b
- for /f "delims=" %%a in ('findstr /ic:"https://" 1.html') do for %%b in (%%a) do echo,%%~b
复制代码
作者: pcl_test 时间: 2016-8-9 00:23
本帖最后由 pcl_test 于 2016-8-9 08:29 编辑
- mshta http://bathome.net/s/hta/ "type('1.html').match(/https?:\/\/[^\""]+/g).join('\r\n')"
- pause
复制代码
作者: zzz 时间: 2016-8-9 10:36
回复 6# GNU
格式化的代码,用此命令正常。但是未格式化的代码,一个都匹配不出来
作者: zzz 时间: 2016-8-9 10:37
回复 11# wskwfkbdn
换行符怎么表示来着?
作者: wskwfkbdn 时间: 2016-8-9 10:49
回复 16# zzz
给你发送送短消息了,加我qq
作者: 523066680 时间: 2016-8-9 21:17
请付费 (哈哈哈哈哈)
作者: GNU 时间: 2016-8-9 22:05
回复 15# zzz
找个测试文件压缩之后上传到顶楼
作者: wskwfkbdn 时间: 2016-8-9 22:57
我已经完美的搞定了,支持全角链接和半角链接,且无格式化正则匹配。
作者: hlzj88 时间: 2016-8-12 00:06
用sed 对关键词进行替换换行处理后,用findstr来提取含jpg的行。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |