金慶的專欄
C++博客
::
首頁
::
新隨筆
::
聯系
::
聚合
::
管理
::
423 隨筆 :: 0 文章 :: 454 評論 :: 0 Trackbacks
公告
我的隨筆
我的評論
我參與的隨筆
留言簿
(12)
給我留言
查看公開留言
查看私人留言
隨筆分類
(502)
1. C/C++(166)
(rss)
2. 網游開發(108)
(rss)
3. Golang(20)
(rss)
4. Linux/Unix(30)
(rss)
5. 軟工與管理(44)
(rss)
6. Python(23)
(rss)
7. Erlang(18)
(rss)
8. Rust(16)
(rss)
9. 其它(77)
(rss)
隨筆檔案
(423)
2023年1月 (1)
2022年11月 (1)
2022年10月 (2)
2022年9月 (1)
2022年4月 (6)
2022年1月 (2)
2021年12月 (4)
2021年11月 (6)
2021年10月 (2)
2021年9月 (2)
2021年8月 (7)
2021年7月 (2)
2021年5月 (2)
2021年3月 (1)
2021年2月 (2)
2021年1月 (1)
2020年12月 (1)
2020年10月 (1)
2020年9月 (5)
2020年8月 (1)
2020年7月 (1)
2020年6月 (1)
2020年4月 (2)
2020年3月 (3)
2020年2月 (3)
2020年1月 (1)
2019年12月 (1)
2019年9月 (2)
2019年4月 (2)
2019年1月 (1)
2018年12月 (1)
2018年11月 (3)
2018年10月 (1)
2018年9月 (3)
2018年8月 (3)
2018年7月 (2)
2018年6月 (4)
2018年5月 (4)
2018年4月 (4)
2018年3月 (1)
2018年1月 (2)
2017年12月 (2)
2017年11月 (3)
2017年10月 (3)
2017年8月 (7)
2017年7月 (1)
2017年6月 (1)
2017年5月 (3)
2017年4月 (3)
2017年3月 (3)
2017年2月 (2)
2017年1月 (2)
2016年12月 (5)
2016年11月 (2)
2016年10月 (2)
2016年9月 (1)
2016年8月 (6)
2016年7月 (3)
2016年6月 (2)
2016年5月 (4)
2016年4月 (2)
2016年3月 (2)
2016年1月 (3)
2015年12月 (2)
2015年11月 (2)
2015年10月 (1)
2015年8月 (2)
2015年7月 (1)
2015年6月 (1)
2015年5月 (4)
2015年4月 (3)
2015年3月 (4)
2015年2月 (5)
2015年1月 (4)
2014年12月 (3)
2014年11月 (3)
2014年10月 (2)
2014年9月 (3)
2014年8月 (1)
2014年4月 (4)
2014年3月 (1)
2014年2月 (4)
2014年1月 (5)
2013年12月 (5)
2013年11月 (5)
2013年9月 (2)
2013年8月 (2)
2013年7月 (2)
2013年6月 (2)
2013年5月 (1)
2013年1月 (2)
2012年12月 (1)
2012年11月 (1)
2012年9月 (1)
2012年8月 (3)
2012年7月 (2)
2012年6月 (1)
2012年4月 (3)
2012年3月 (2)
2012年2月 (3)
2012年1月 (2)
2011年11月 (2)
2011年10月 (3)
2011年9月 (2)
2011年8月 (2)
2011年7月 (3)
2011年6月 (2)
2011年5月 (3)
2011年1月 (2)
2010年12月 (1)
2010年11月 (2)
2010年10月 (2)
2010年9月 (3)
2010年8月 (2)
2010年7月 (3)
2010年6月 (1)
2010年5月 (3)
2010年4月 (3)
2010年3月 (5)
2010年2月 (4)
2010年1月 (4)
2009年12月 (2)
2009年11月 (3)
2009年10月 (4)
2009年9月 (3)
2009年8月 (2)
2009年7月 (4)
2009年6月 (1)
2009年5月 (3)
2009年4月 (4)
2009年3月 (2)
2009年2月 (5)
2009年1月 (1)
2008年12月 (7)
2008年11月 (4)
2008年10月 (1)
2008年9月 (3)
2008年8月 (4)
2008年7月 (3)
2008年6月 (4)
2008年5月 (6)
2008年4月 (7)
2008年3月 (6)
2008年1月 (5)
2007年12月 (7)
2007年11月 (4)
2007年10月 (5)
2007年9月 (6)
2007年8月 (8)
2007年7月 (5)
相冊
公告照片
搜索
積分與排名
積分 - 656585
排名 - 25
最新評論
1.?re: boost::asio::spawn 將一統C++網絡庫
asio 成為C++首選網絡庫
--linda
2.?re: log4cxx中文輸出錯誤補丁
評論內容較長,點擊標題查看
--金慶
3.?re: mingw編譯OrzNet
能發送一個mingw編譯好的OrzNet庫給我嗎? liuweiqcxy@163.com
謝謝!
--劉威
4.?re: log4cxx中文輸出錯誤補丁
評論內容較長,點擊標題查看
--bigbad
5.?re: log4cxx中文輸出錯誤補丁
評論內容較長,點擊標題查看
--bigbad
閱讀排行榜
1.?"multiple definition of" 錯誤(11032)
2.?SVN中邪惡的replace(10955)
3.?VS2005編譯libevent(10413)
4.?混音算法的學習與研究(10203)
5.?C調用lua腳本的效率測試(9007)
評論排行榜
1.?VC6正在被拋棄(35)
2.?VS2005編譯libevent(21)
3.?"multiple definition of" 錯誤(18)
4.?C++引用優于指針(17)
5.?ACE與ASIO之間關于Socket編程的比較(16)
批量html轉text
批量html轉text
(轉載請注明來源于金慶的專欄)
原來的代碼是參考“Recipe 12.11. Using MSHTML to Parse XML or HTML”,利用htmlfile提取文本。
將當前目錄下的所有html文件轉換為text文件。
def
extractHtmlFile(htmlFilePath):
'''
Extract html text and save to text file.
'''
htmlData
=
file(htmlFilePath,
'
r
'
).read()
import
win32com.client
html
=
win32com.client.Dispatch(
'
htmlfile
'
)
html.writeln(htmlData)
text
=
html.body.innerText.encode(
'
gbk
'
,
'
ignore
'
)
但是發現MSHTML解析文件可能會出錯,造成文本提取失敗。
jigloo經過對10W+個html文件的測試,得出結論,htmlfile的容錯比InternetExplorer.Application要差很多。
原文見:http://groups.google.com/group/python-cn/msg/c9221764bcafbc21
他的代碼大致如下,IE使用稍煩:
#
!/usr/bin/env python
import
sys, os, re, codecs
import
time
import
win32com.client
class
htmlfile:
def
__init__
(self):
self.
__ie
=
win32com.client.Dispatch(
'
InternetExplorer.Application
'
)
self.
__ie
.Silent
=
True
self.
__filename
=
''
self.
__document
=
None
def
__del__
(self):
self.
__ie
.Quit()
def
__getdocument
(self, filename):
filename
=
os.path.abspath(filename)
if
self.
__filename
!=
filename:
self.
__filename
=
filename
self.
__ie
.Navigate2(filename)
self.
__ie
.Document.close()
while
self.
__ie
.Document.Body
is
None:
time.sleep(
0.1
)
self.
__document
=
self.
__ie
.Document
return
self.
__document
def
gettext(self, filename):
return
self.
__getdocument
(filename).Body.innerText
def
gettitle(self, filename):
return
self.
__getdocument
(filename).title
if
__name__
==
'
__main__
'
:
hf
=
htmlfile()
for
root, dirs, names
in
os.walk(u
'
.
'
):
for
name
in
names:
if
name.endswith(
'
htm
'
)
or
name.endswith(
'
html
'
):
htmlpath
=
os.path.join(root, name)
textpath
=
htmlpath
+
'
.txt
'
file(textpath,
'
wb
'
).write(hf.gettext(htmlpath).encode(
'
mbcs
'
))
#
End of if.
#
End of for name.
#
End of for root.
del
hf
#
End of if.
對于我的簡單任務,這就足夠了。
有一個問題,如果有資源管理器打開著,運行這段代碼會關閉資源管理器,并出錯退出。比較奇怪,但應該不難解決,可能是IE控件的使用上還有問題。
self.__ie.Document.close()
File "C:\Python25\Lib\site-packages\win32com\client\dynamic.py", line 496, in
__getattr__
raise AttributeError, "%s.%s" % (self._username_, attr)
AttributeError: Document.close
posted on 2008-03-13 11:55
金慶
閱讀(1725)
評論(1)
編輯
收藏
引用
所屬分類:
6. Python
評論
#
re: 批量html轉text
2008-12-01 15:48
Hanqing Chen
你好,我需要這個程序代碼,可以發給我一份嗎?
不勝感謝,我的郵箱 lychenhanqing@163.com
回復
更多評論
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
【推薦】100%開源!大型工業跨平臺軟件C++源碼提供,建模,組態!
相關文章:
vs2017 linux 編譯輸出改成 vs 格式
xlsx批量轉為utf8的csv
如何運行 rpcz python example
Windows上Python讀取stdin出錯
建立Socket Policy服務器
python計算24點
(Python編程)Pickle對象
Boost.Python中文文檔下載
用Boost.Python構建混合系統
Python封裝的性能研究
網站導航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
Powered by:
C++博客
Copyright © 金慶
久久国产影院
|
久久美女网站免费
|
亚洲AV无码久久寂寞少妇
|
久久妇女高潮几次MBA
|
成人久久综合网
|
久久国产精品无码网站
|
久久国产精品无
|
久久综合狠狠综合久久激情
|
久久精品国产亚洲7777
|
亚洲国产精品无码成人片久久
|
国产精品久久毛片完整版
|
伊人久久国产免费观看视频
|
久久99精品国产自在现线小黄鸭
|
久久av高潮av无码av喷吹
|
久久Av无码精品人妻系列
|
久久久WWW成人免费精品
|
伊人久久久AV老熟妇色
|
久久久久99精品成人片牛牛影视
|
亚洲精品乱码久久久久久
|
久久精品无码一区二区三区免费
|
国内精品久久久久久99
|
777午夜精品久久av蜜臀
|
亚洲一级Av无码毛片久久精品
|
久久这里只有精品久久
|
国产午夜精品久久久久免费视
|
老男人久久青草av高清
|
久久久中文字幕日本
|
精品久久久久一区二区三区
|
97久久国产亚洲精品超碰热
|
久久久久亚洲AV成人片
|
精品久久久无码21p发布
|
久久香综合精品久久伊人
|
无码人妻久久一区二区三区蜜桃
|
久久久噜噜噜久久
|
日韩美女18网站久久精品
|
精品综合久久久久久88小说
|
久久AⅤ人妻少妇嫩草影院
|
久久久久亚洲精品无码网址
|
久久久久亚洲av综合波多野结衣
|
色综合合久久天天给综看
|
要久久爱在线免费观看
|