标题: [文本处理] [已解决]批处理如何从大量html文件中提取指定的tag中的内容? [打印本页]
作者: liyanqi159 时间: 2015-4-3 16:52 标题: [已解决]批处理如何从大量html文件中提取指定的tag中的内容?
本帖最后由 liyanqi159 于 2015-4-3 18:09 编辑
源文件是html格式,文件名为1.html,2.html
比如 1.html 里的内容为 <li>To set a photo as the wallpaper, tap <b>Enter Gallery</b>, select and crop a photo, and then tap <b>Apply</b>.</li>
2.html 里的内容为 <li>To use a wallpaper, tap the wallpaper thumbnail, and then tap <b>Apply</b>.</li>
把红色的文字提取出来放到一个1.txt文件中。
文本里的内容为
1.html Enter Gallery
1.html Apply
2.html Apply
谢谢大神啦!
作者: bailong360 时间: 2015-4-3 17:24
是否方便提供一份或多份源文件用于测试代码?
作者: liyanqi159 时间: 2015-4-3 17:34
回复 2# bailong360
附件是3个htm文件,谢谢啦
作者: bailong360 时间: 2015-4-3 17:49
本帖最后由 bailong360 于 2015-4-3 17:52 编辑
- @echo off
- setlocal enabledelayedexpansion
- For /F "Delims=" %%i In ('Dir /B *.htm') Do (
- For /F "Delims=" %%j In ('Findstr "<li>" "%%i"^|Grep -oP "(?<=<b>)..*?(?=</b>)"') Do >>提取.txt Echo %%~nxi.html %%j
- )
- pause
复制代码
是否符合要求?
本代码需要第三方grep支持,下载后与批处理放在同一目录下
http://batch-cn.qiniudn.com/tool/2.5.1/grep.exe
作者: liyanqi159 时间: 2015-4-3 17:57
回复 4# bailong360
测试了,可以用,太感谢了!!!不用grep直接用批处理可以实现吗?
作者: bailong360 时间: 2015-4-3 18:02
回复 5# liyanqi159
以我的能力怕是实现起来比较麻烦
PS 问题解决后记得标注[已解决]
作者: cobat 时间: 2015-4-4 10:20
- @echo off
- setlocal enabledelayedexpansion
- (for /f "tokens=1* delims=:" %%a in ('findstr "<b>" *.htm') do (
- set var=&set "ln=%%b"
- for %%c in ("!ln:</b>=" "!") do (
- if defined var echo,%%a !var:*^<b^>=!
- set "var=%%~c"
- )
- ))>1.txt
- pause
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |