Найти - Пользователи
Полная версия: Вопрос по urljoin
Начало » Python для экспертов » Вопрос по urljoin
1
ustuz
Всем доброго времени суток.

Столкнулся на днях с одной проблемой urljoin.

Пытаюсь распарсить html, и при этом перевести относительный адреса в абсолютные. Использую для это urljoin.

Проблема:
Есть сайт http://www.aaa.xxx

На html страничке http://www.aaa.xxx/a/b/c есть <a> тег с href = “a/b/c?param=d”

Браузеры превращают ссылку, описанную в этом теге в http://www.aaa.xxx/a/b/c?param=d

А вызов urljoin:
urlparse.urljoin("http://www.aaa.xxx/a/b/c“,”a/b/c?param=d")

выдает результат:
'http://www.aaa.xxx/a/b/a/b/c?param=d'

Кто-нибудь сталкивался с такой проблемой? Хотелось бы получить поведение идентичное поведению браузеров (и соответственно стандартам RFC).
Может есть аналог urljoin, работающий правильно?
bw
Совершенно очевидно, что urljoin работает правильно.
Пилите дальше.

..bw
ustuz
Хм…
Тогда вопрос: “Как повторить логику браузера при формировании абсолютного url?”

Есть ли функция (или набор функций), которые позволят это сделать?
bw
Совершенно очевидно, что вы где-то косячите, по примеру, браузер такого делать не может.
@see: http://d69.dyndns.org/a/b/c

..bw
Александр Кошелев
Скорее всего у страницы есть тег <base>
bw
И правда, не знал. BASE объясняет такое поведение браузера. Век живи, век учись :-).

..bw
ustuz
“Скорее всего у страницы есть тег <base>”

Спасибо большое, Александр! Действительно, этот тег присутствует на странице и его присутствие многое объясняет в поведении браузера.
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