Board logo

标题: [文本处理] [已解决]批处理如何从大量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 编辑
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. For /F "Delims=" %%i In ('Dir /B *.htm') Do (
  4.     For /F "Delims=" %%j In ('Findstr "<li>" "%%i"^|Grep -oP "(?<=<b>)..*?(?=</b>)"') Do >>提取.txt Echo %%~nxi.html %%j
  5. )
  6. 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

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. (for /f "tokens=1* delims=:" %%a in ('findstr "<b>" *.htm') do (
  4.     set var=&set "ln=%%b"
  5.     for %%c in ("!ln:</b>=" "!") do (
  6.         if defined var echo,%%a !var:*^<b^>=!
  7.         set "var=%%~c"
  8.     )
  9. ))>1.txt
  10. pause
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2