金慶的專欄
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)
相冊
公告照片
搜索
積分與排名
積分 - 654006
排名 - 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" 錯誤(11017)
2.?SVN中邪惡的replace(10939)
3.?VS2005編譯libevent(10404)
4.?混音算法的學習與研究(10184)
5.?C調用lua腳本的效率測試(9003)
評論排行榜
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
金慶
閱讀(1715)
評論(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 © 金慶
女人香蕉久久**毛片精品
|
狠狠色婷婷久久综合频道日韩
|
热99re久久国超精品首页
|
A级毛片无码久久精品免费
|
三级片免费观看久久
|
国产精品午夜久久
|
久久不见久久见免费影院www日本
|
久久精品国产影库免费看
|
国产成人精品久久一区二区三区
|
亚洲精品午夜国产VA久久成人
|
狠狠色丁香婷婷久久综合
|
伊人久久大香线蕉综合热线
|
亚洲日韩欧美一区久久久久我
|
久久人妻少妇嫩草AV无码蜜桃
|
亚洲伊人久久综合影院
|
中文成人无码精品久久久不卡
|
久久亚洲精品成人无码网站
|
狠狠精品久久久无码中文字幕
|
亚洲精品乱码久久久久久蜜桃图片
|
亚洲狠狠久久综合一区77777
|
狠狠色丁香婷婷久久综合不卡
|
97久久婷婷五月综合色d啪蜜芽
|
7777精品久久久大香线蕉
|
久久人人妻人人爽人人爽
|
2022年国产精品久久久久
|
久久本道综合久久伊人
|
久久婷婷色香五月综合激情
|
久久综合给久久狠狠97色
|
久久伊人精品青青草原高清
|
性做久久久久久免费观看
|
无码国内精品久久人妻蜜桃
|
久久中文字幕一区二区
|
成人综合久久精品色婷婷
|
久久国产免费观看精品3
|
久久久久无码中
|
久久精品人人槡人妻人人玩AV
|
国产精品成人久久久久久久
|
亚洲国产精品成人久久
|
久久人人爽人人爽AV片
|
99精品久久精品
|
亚洲精品白浆高清久久久久久
|