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

[文本处理] 批处理怎么提取一个HTML网页中的所有汉字(删除所有html标签)

[复制链接]
发表于 2008-9-27 21:39:24 | 显示全部楼层 |阅读模式
本帖最后由 pcl_test 于 2016-7-22 10:46 编辑

一个HTML格式的网页中有很多代码,但是我想要的是小说的内容,把代码部分去掉,求大家帮帮忙!!
例如:原网页类似如下:
  1. <div id="adtop"><script type="text/javascript" src="/configs/article/pagetop1.js"></script></div>
  2. <div id="title">第三卷 风云动 第八章 雾隐峰门人</div>
  3. <div id="adtop"><script type="text/javascript" src="/configs/article/pagetop2.js"></script></div>
  4. <div id="content">    “喂,老骗子,我送你上去。”独孤败天笑着向他走去。<br />
  5. <br />
  6.     老骗子吓得一把抱住了司徒皓月,道:“不!皓月兄弟会带我上去的,不麻烦你了。”最终老骗子被司徒皓月背着飞上了峭壁上方,当他们上来时绝色少女又已无了踪影。峭壁下最少有一半人无功而返,上来的群雄继续前进。<br />
  7. <br />
  8.     雾隐峰顶不愧为古仙人遗址,亭台楼阁,奇花异草,小桥流水,仙鹤飞舞……让人疑在梦中。<br />
  9. <br />
  10.    
复制代码
在批处理后会有如下改变:
第三卷 风云动 第八章 雾隐峰门人
“喂,老骗子,我送你上去。”独孤败天笑着向他走去。
老骗子吓得一把抱住了司徒皓月,道:“不!皓月兄弟会带我上去的,不麻烦你了。”最终老骗子被司徒皓月背着飞上了峭壁上方,当他们上来时绝色少女又已无了踪影。峭壁下最少有一半人无功而返,上来的群雄继续前进。
雾隐峰顶不愧为古仙人遗址,亭台楼阁,奇花异草,小桥流水,仙鹤飞舞……让人疑在梦中
发表于 2008-9-27 21:59:46 | 显示全部楼层
  用网页转文本的第三方命令行程序HtoX32c这个工具来转换吧,在当前目录下运行如下命令,可以一次性把所有的网页转换为文本文件:
  1. htox32c /ip *.html
复制代码
  HtoX32c这个工具请到这里下载:http://bbs.bathome.net/viewthread.php?tid=1974
发表于 2008-9-27 22:17:42 | 显示全部楼层
想这样的,最好用vbs的正则
bat不太好处理
因为html的代码符很多
发表于 2008-9-27 22:54:30 | 显示全部楼层
不是很熟悉SED命令 你试下
sed "1,30d;s/<[^>]*>//g;s/ //g;s/$/\r/" "1.html" >"1.txt"
发表于 2008-9-27 23:18:33 | 显示全部楼层

回复 3楼 的帖子

关键是正则表达式难写啊,从网上找到一个据说匹配比较完美的表达式
  1. /<\S(?:([\'\"]?)[\s\S]*?\1)*>/g
复制代码
发表于 2008-9-28 04:35:52 | 显示全部楼层
这个也可以,但小说中有若有英文就OVER。
  1. @type a.html|wfr /r:"\W" /t|wfr /r:"[a-zA-Z0-9_]" /t>aa.txt
复制代码
保存结果为aa.txt。
wfr下载:http://bbs.bathome.net/thread-1909-1-1.html
发表于 2008-9-28 11:08:03 | 显示全部楼层
纯批版的,唯不能处理"="号:
  1. @echo off
  2. set a="
  3. set "code=. 0 1 2 3 4 5 6 7 8 9 a b c d e f g h i j k l m n o p q r s t u v w x y z ^> ^< /"
  4. for /f "delims=" %%a in (a.txt) do (
  5.     set "str=%%a"
  6.     setlocal enabledelayedexpansion
  7.     set "str=!str:%a%=!"
  8.     for %%i in (%code%) do set "str=!str:%%i=!"
  9.     echo.!str!   
  10. )
  11. pause>nul
复制代码

[ 本帖最后由 batman 于 2008-9-28 11:22 编辑 ]
 楼主| 发表于 2008-9-28 12:42:35 | 显示全部楼层
谢谢大家的热心
各有千秋啊
我最后用VBS解决了
很愚蠢的办法
模拟按键
先ENTER(打开网页文件)
CTRL+A(全选)
CTRL+C(复制)
ALT+F4(关闭当前的网页)
再ALT+TAB(切换到文本)
CTRL+V(粘贴)
再ALT+TAB(切换到网页的文件夹)
方向键下(选择下一个网页文件)
以上循环
一共175个网页
我用了20多分钟
然后用多行批量字符替换工具替换所有垃圾文字
总时间半小时
都晕了  呵呵
发表于 2008-9-28 14:53:55 | 显示全部楼层
原帖由 lzwudi 于 2008-9-28 12:42 发表
谢谢大家的热心
各有千秋啊
我最后用VBS解决了
很愚蠢的办法
模拟按键
先ENTER(打开网页文件)
CTRL+A(全选)
CTRL+C(复制)
ALT+F4(关闭当前的网页)
再ALT+TAB(切换到文本)
CTRL+V(粘贴)
再ALT ...

用SED估计要快  不知能否达到楼主要求
  1. for %%i in (*.html) do (
  2. sed "1,30d;s/&.*;//;s/<[^>]*>//g;s/$/\r/" "%%i" >"_%%~ni.txt"
  3. )
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-21 16:12 , Processed in 0.031701 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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