Использование htmlparse для замены исходных URL изображений и CSS в HTML-файле (Python) - PullRequest
3 голосов
/ 16 сентября 2011

Я пытаюсь написать скрипт, который будет загружать веб-страницу, включая все изображения и таблицы стилей - то есть, чтобы локально размещенная версия выглядела как оригинал.

Первоначально я только что загружал изображения, но теперь я понимаю, что мне нужно (конечно) отредактировать источник html, чтобы img src фактически указывал на локально размещенное изображение.Так как я все равно должен изменить исходный код HTML, я решил, что было бы лучше, если бы я просто обновил локально размещенный файл, чтобы он указывал на изображения и таблицы стилей, размещенные удаленно.

Так что это подводит меня к моему вопросу, могу лииспользовать htmlparse для поиска таблиц стилей и тегов изображений, а затем заменить ссылки на них обновленными версиями?

Я посмотрел документацию по htmlparse, но я все еще довольно плохо знаком с Python, поэтомунекоторые части неясны.Я думал, что можно было бы использовать:

HTMLParser.handle_data(data)
This method is called to process arbitrary data. It is intended to be overridden by a 
derived class; the base class implementation does nothing.

и добавить к нему свой собственный замещающий класс?Или я ошибаюсь?

Другой вариант, конечно, будет использовать регулярные выражения для поиска тегов и замены текста после них, но это может стать довольно сложным, поэтому мне было интересно, будет ли htmlparseпредоставить более простое решение.

Я понимаю, что прекрасный суп был бы идеальным решением, но я буду распространять готовый инструмент по всей моей компании, поэтому, к сожалению, я не могу использовать сторонние модули.Точно так же я хотел бы, чтобы инструмент был независимым от платформы, поэтому, к сожалению, не могу использовать wget.

Спасибо за любой вклад =)

1 Ответ

1 голос
/ 18 января 2013

Вы можете использовать любые модули по своему усмотрению, если вы упаковываете программу Python в автономный двоичный файл (даже не требуется Python runtime) с помощью этого: http://www.pyinstaller.org/

...