Как использовать HTTrack для загрузки сжатых файлов с URL-адресов с акцентированными символами?
Я загружаю сайт с HTTrack с пятнистыми результатами. Несколько каталогов возвращают 2 или более версий одного и того же файла HTML. Эти дубликаты в любом каталоге могут включать в себя:
- файл с именем índice.html (обратите внимание на акцент), который показывает бред в браузере. При более тщательном изучении получается, что это архив.z с неправильным расширением, содержащий правильный файл HTML
- файл с именем índice.html.z, который является архивом, содержащим читаемую версию этого файла
- файл с именем ndice-2.html, который является хорошей версией исходного файла índice.html, отлично читаемый в браузере
- файл с именем índice-2.html.z, который является архивом, содержащим тот же файл, но иногда этот файл несколько отличается по размеру от первого
- так далее
Журнал ошибок HTTrack показывает следующее:
18:07:32 Ошибка: "Ошибка при распаковке" (-1) по ссылке example.com/conversación/índice.html
Это испанский сайт, и в некоторых каталогах есть акценты, и файлы называются ndice.html вместо index.html. Это заставляет меня подозревать, что причиной того, что HTTrack портит загрузку, являются акценты, но я не могу доказать это, за исключением того, что я загрузил английскую версию того же сайта без проблем.
Подводя итог, можно сказать, что проблема может заключаться либо в акцентированных символах в URL-адресе, либо в чем-то еще, связанном с способом обработки HTML-файлами в формате HTTrack, но мой главный вопрос остается прежним:
Это ошибка в HTTrack или ожидаемое поведение, и как мне ее обойти, чтобы успешно загрузить испанскую версию сайта?
1 ответ
Это может быть вызвано символами с акцентом, как вы подозреваете. Эта открытая ошибка кажется связанной.
Кажется, вызвано китайским текстом в заголовке.whtt. Иногда китайский текст приводит к тому, что Winhttrack создает несколько папок с мусорным кодом в той же папке, что и файл.whtt. И в этих случаях в папках загрузки остаются файлы.html.z, а иногда и файлы с задержкой или пустые файлы, а также сообщение об ошибке "Ошибка при распаковке".
Когда я повторил попытку с простым именем ASCII-проекта для URL-адреса sam, это удалось.
Так что, похоже, проблема с кодировкой (которой нет в некоторых более ранних версиях).
предложения:
- Попробуйте
--utf8-conversion
флаг. - Если это не сработает, попробуйте загрузить более раннюю версию программы (так как репортер ошибок утверждает, что в некоторых более ранних версиях проблема не обнаружена).
В качестве альтернативы используйте
wget
вместо. Что-то вродеwget -mkp -np -nH www.example.com/path/to/toplevel/directory/index.html
будет рекурсивно копировать все страницы, связанные с
index.html
которые находятся в каталогеexample.com/path/to/toplevel/directory/
, Он также включает в себя любые файлы, необходимые для поддержки этих файлов (CSS, JS и т. Д.).примечание: если wget уничтожает акцентированные имена файлов, используйте опцию
--restrict-file-names=nocontrol
почти дубликаты файлов
Что касается вопроса о почти дублирующихся файлах, HTTrack (или wget) не может ничего с этим поделать, если вы не можете сказать ему, как выбирать, какие файлы он должен и не должен загружать.
Если существует какая-то согласованная схема именования, и вы знаете, что вам не нужны файлы с определенным именем и / или путем, вы можете использовать фильтр, чтобы исключить их.
HTTrack позволяет исключать файлы с помощью фильтров. Это шаблоны с префиксом
-
например фильтр-www.example.com/path/to/toplevel/directory/subdir_with_dupes/*-2.html
исключит все файлы в подкаталоге
subdir_with_dupes/
которые имеют имя, оканчивающееся на-2.html
, Существуют различные шаблоны и правила сканирования, которые можно использовать в фильтрах. Смотрите ссылку выше или справочную страницу.Если вы используете wget, вы можете исключить каталоги с помощью
--exclude-directories
и суффиксы имени файла с--reject
(позволяя подстановочные знаки). Или вы можете применить фильтр регулярных выражений ко всему URL с помощью--reject-regex
, Есть много других вариантов. Вы можете получить список сwget --help
и объяснения сman wget
,