使用firefox将数千个html文件保存为txt文件 - 如何自动完成这项工作?

时间:2012-02-27 06:32:43

标签: firefox automation firefox-addon

我有成千上万的html文件,需要使用firefox将它们保存为txt。

如果我手动完成这项工作,我会在firefox中打开每个html文件,单击File菜单,单击'Save Page As'菜单项,然后选择格式为'TEXT',并保存到本地磁盘。

但如何自动完成这项工作?

任何脚本/工具都可以帮助您吗?

感谢。

2 个答案:

答案 0 :(得分:2)

如果您的目标是让firefox从每个页面中删除html并仅保存文本,那么有很多选项。我不知道任何firefox附加组件能够智能地遍历目录中的每个文件以执行宏,所以这里有一些选项:

    每个文件中的
  1. Refer to this SO question regarding how to use python to strip the html。它提供了内置HTMLParser模块和使用BeautifulSoup

  2. 的示例
  3. 使用Selenium自动化您的网络浏览器:http://seleniumhq.org/

  4. 如果您了解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