找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 77140|回复: 20

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

[复制链接]
发表于 2016-8-8 19:04:57 | 显示全部楼层 |阅读模式
本帖最后由 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代码并没有被格式化,杂乱的代码

评分

参与人数 1PB -2 收起 理由
pcl_test -2 发帖前先使用论坛搜索

查看全部评分

发表于 2016-8-8 19:14:36 | 显示全部楼层
 楼主| 发表于 2016-8-8 21:08:26 | 显示全部楼层
回复 2# pcl_test


    你在逗我?
 楼主| 发表于 2016-8-8 21:17:04 | 显示全部楼层

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

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

提取http://www.baidu.com/d.jpg
发表于 2016-8-8 22:06:43 | 显示全部楼层
本帖最后由 wskwfkbdn 于 2016-8-8 22:48 编辑

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

推荐一种方法纯p实现  把引号用set替换成换行符,echo %%x|find /i "http"
发表于 2016-8-8 22:19:48 | 显示全部楼层
回复 4# wskwfkbdn
  1. grep -Po "https://[^"]+\.png" 1.html
复制代码
你也试试看
发表于 2016-8-8 22:25:57 | 显示全部楼层
  1. sed "s#.* src=.\([^"]\+\)".*#\1#g" 1.html
复制代码
 楼主| 发表于 2016-8-8 22:37:09 | 显示全部楼层
回复 7# GNU


    恩,thanks,但是只获取了一个图片链接。我想都获取到
 楼主| 发表于 2016-8-8 22:38:57 | 显示全部楼层
回复 5# wskwfkbdn


    恩,我已经用纯批写出来了。但是由于for最多只能截取31个。头疼啊,一行代码过长的话,图片链接都不能全部获取到
发表于 2016-8-8 22:42:12 | 显示全部楼层
回复 8# zzz


    6楼那个试过了吗?
发表于 2016-8-8 22:54:19 | 显示全部楼层
本帖最后由 wskwfkbdn 于 2016-8-8 22:55 编辑

回复 9# zzz


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

推荐一种方法纯p实现  把引号用set替换成换行符,echo 变量|findstr /i "^http"
发表于 2016-8-9 00:03:41 | 显示全部楼层
本帖最后由 pcl_test 于 2016-8-9 08:51 编辑
  1. powershell -c "([regex]'https?://[^"]+').Matches($(type '1.html'))^|%%{$_.Value}"
  2. pause
复制代码
发表于 2016-8-9 00:22:28 | 显示全部楼层
本帖最后由 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
复制代码
发表于 2016-8-9 00:23:16 | 显示全部楼层
本帖最后由 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
复制代码
 楼主| 发表于 2016-8-9 10:36:59 | 显示全部楼层
回复 6# GNU


    格式化的代码,用此命令正常。但是未格式化的代码,一个都匹配不出来
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 14:07 , Processed in 0.023419 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表