【问题标题】:Save thousands of html files as txt files, using firefox - how to automate this job?使用 firefox 将数千个 html 文件保存为 txt 文件 - 如何自动化这项工作?
【发布时间】:2012-03-16 16:26:47
【问题描述】:

我有数千个 html 文件,需要使用 firefox 将每个文件保存为 txt。

如果我手动完成这项工作,我会在 Firefox 中打开每个 html 文件,单击“文件”菜单,单击“将页面另存为”菜单项,然后选择“文本”格式,然后保存到本地磁盘。

但是如何自动化这项工作呢?

任何脚本/工具都可以帮助解决这个问题?

谢谢。

【问题讨论】:

  • 你知道任何脚本语言吗?你在什么系统上?
  • 任何脚本语言都可以。我认为这里不需要太多的脚本编程。 Windows 平台。
  • 另一种选择是利用文本浏览器en.wikipedia.org/wiki/Lynx_%28web_browser%29

标签: firefox automation firefox-addon


【解决方案1】:

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

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

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

  3. 如果你懂 javascript,你可以使用 PhantomJS: http://www.phantomjs.org/,这是一个无头网络浏览器 使用 javascript 脚本驱动。

【讨论】:

    【解决方案2】:

    我有数千个 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
    

    【讨论】:

    • 1.这些文件保存在本地磁盘,而不是在线的html文件。
    • 2.我想使用 Firefox 来完成 html 剥离工作,因为 Firefox 可以很好地完成这项工作。是的,我只想保存 html 文件的显示文本,其中没有任何 html 标签/css/javascript。
    • 我在 IE 中使用 VBA 对此有很好的经验。你愿意使用 VBA 吗? (我相信只需要进行一些小的改动就可以与 FF 一起使用。)
    • 太棒了!是的,我可以使用 VBA(虽然我不是很熟悉,但我现在可以学习它)。您能详细介绍一下您的解决方案吗?
    • 我已添加到原始答案中。让我知道这是否有效,或者您是否需要任何进一步的指导;我很乐意提供帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-18
    • 1970-01-01
    • 2012-09-28
    • 2018-07-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多