Найти - Пользователи
Полная версия: Сделать все относительные адреса абсолютными в полученом html
Начало » Python для новичков » Сделать все относительные адреса абсолютными в полученом html
1
mrzaggi
Большая часть вопроса - в заголовке. Получаю хтмл, требуется преобразовать все пути вида /subdir/file1.html в http://site.com/subdir/file1.html
Чем можно сделать?
tmt
Правильней всего это делать во время генерации хтмл.
Если страници приходят из “черного ящика”, который вас недоступен - используйте например регулярные виражения для замены, потом отображайте страницу.
Или после загрузки страницы меняйте javascript-ом. =)
mrzaggi
Я ничего не генерирую =) я его скачиваю. А вообще походу нашел решение - BS/lxml + urlparse + urljoin сделают дело.
pasaranax
вот простенько
import re

html = '''
<a href="http://somesite.ru/url/">
<img src="pics/pic.jpg">
<img src="/pics/pic2.jpg">
</a>
'''
prefix = 'http://site.ru'
print re.sub(r'((href|src)=[\'\"](?!http))(.*?[\'\"])', '\\1%s/\\3' % prefix, html)
mrzaggi
простенько для тех кто умеет регулярки =) А у меня никак не доходят руки заботать их, хотя надобность какждый день возникает =(
o7412369815963
mrzaggi
простенько для тех кто умеет регулярки =) А у меня никак не доходят руки заботать их, хотя надобность какждый день возникает =(
надо просто заняться, они не только полезны, но и интересны
certanista
mrzaggi
Я ничего не генерирую =) я его скачиваю. А вообще походу нашел решение - BS/lxml + urlparse + urljoin сделают дело.
Если на то пошло, то в lxml специальная функция есть.
http://codespeak.net/lxml/lxmlhtml.html#working-with-links
mrzaggi
Вах спасибо.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB