我有成千上万的html文件,需要使用firefox将它们保存为txt。
如果我手动完成这项工作,我会在firefox中打开每个html文件,单击File菜单,单击'Save Page As'菜单项,然后选择格式为'TEXT',并保存到本地磁盘。
但如何自动完成这项工作?
任何脚本/工具都可以帮助您吗?
感谢。
答案 0 :(得分:2)
如果您的目标是让firefox从每个页面中删除html并仅保存文本,那么有很多选项。我不知道任何firefox附加组件能够智能地遍历目录中的每个文件以执行宏,所以这里有一些选项:
Refer to this SO question regarding how to use python to strip the html。它提供了内置HTMLParser
模块和使用BeautifulSoup
使用Selenium自动化您的网络浏览器:http://seleniumhq.org/
如果您了解javascript,可以使用PhantomJS: http://www.phantomjs.org/,这是一个无头网页浏览器 用JavaScript脚本驱动。
答案 1 :(得分:1)
我有成千上万的html文件......
您实际拥有这些文件,还是在线?
...并且需要将它们保存为txt ...
任何文本编辑器都应该能够保存数据(即为什么要使用FireFox),我认为.htm或.html直接重命名为.txt。将工作(至少在任何Windows系统上)。或者您的意思是:只保存HTML文件的显示的文本?
编辑:
首先,从this link开始,它有很好的解释如何开始 shdocvw ,您需要这样做。 设置参考后,使用功能
Function GetNewIE() As SHDocVw.InternetExplorer
和
Function LoadWebPage(i_IE As SHDocVw.InternetExplorer, i_URL As String) As Boolean
从链接(只需复制到您的项目,如链接中所述)加载您的个人html文件,使用循环来通过每个文件。 (Excel会对此有好处,因为你可以把你的文件列表放到单元格中,并循环遍历每个单元格来检索。)我从来没有用这么多文件做过这样的事情,所以我不能保证这会有用,不幸的是...
Dim IE As SHDocVw.InternetExplorer
Dim lRow as Long 'Long in case you have a LOT of files
Dim iFNum As Integer
Dim sFilePath As String
Set IE = GetNewIE
For lRow = 1 To 5000 Step 1 ' Assuming you have 5,000 html files, so 5,000 rows with the paths to each
sFilePath = ActiveSheet.Range("A" & lRow).Value ' This should also include the filepath. i.e. "C:\dir\..."
If LoadWebPage(IE, sFilePath) Then
iFNum = FreeFile(lRow)
Open sFilePath & ".txt" For Output As iFNum
Write #iFNum, IE.Document.InnerText
Close #iFNum
End If
Next lRow