Сохраните тысячи HTML-файлов в виде текстовых файлов, используя Firefox - как автоматизировать эту работу? - PullRequest
0 голосов
/ 27 февраля 2012

У меня есть тысячи html-файлов, и мне нужно сохранить каждый из них как txt, используя firefox.

Если я сделаю эту работу вручную, я открою каждый html-файл в firefox, откройте меню File,щелкните пункт меню «Сохранить страницу как», затем выберите формат «Текст» и сохраните на локальный диск.

Но как автоматизировать эту работу?

Любой сценарий / инструмент может помочь в этом?

Спасибо.

Ответы [ 2 ]

2 голосов
/ 27 февраля 2012

Если ваша цель - заставить Firefox убрать HTML-код с каждой страницы и сохранить только текст, тогда существует множество вариантов. Я не знаю ни о каких надстройках Firefox, которые будут достаточно умными, чтобы циклически проходить по каждому файлу в каталоге для выполнения макроса, поэтому вот несколько вариантов:

  1. См. Этот вопрос о том, как использовать python для извлечения html из каждого файла. В нем приведены примеры как для встроенного HTMLParser модуля, так и для использования BeautifulSoup

  2. Используйте Selenium для автоматизации вашего браузера: http://seleniumhq.org/

  3. Если вы знаете javascript, вы можете использовать PhantomJS: http://www.phantomjs.org/,, который представляет собой безголовый веб-браузер, который вы диск со скриптами JavaScript.

1 голос
/ 29 февраля 2012

У меня есть тысячи HTML-файлов ...

У вас есть эти файлы под рукой, или они в сети?

... и нужно сохранить каждый из них как txt ...

Любой текстовый редактор должен иметь возможность сохранять данные внутри (т.е. зачем использовать FireFox), и я думаю, что прямое переименование .htm или .html в .txt. будет работать (по крайней мере, в любой системе Windows). Или вы имеете в виду: сохранить только отображаемый текст HTML-файла?


РЕДАКТИРОВАТЬ:

Во-первых, начните с этой ссылки , в которой есть хорошее объяснение того, как начать работу с 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...