Форум сайта python.su
Всем доброго времени суток.
Столкнулся на днях с одной проблемой 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, работающий правильно?
Офлайн
Совершенно очевидно, что urljoin работает правильно.
Пилите дальше.
..bw
Офлайн
Хм…
Тогда вопрос: “Как повторить логику браузера при формировании абсолютного url?”
Есть ли функция (или набор функций), которые позволят это сделать?
Офлайн
Совершенно очевидно, что вы где-то косячите, по примеру, браузер такого делать не может.
@see: http://d69.dyndns.org/a/b/c
..bw
Офлайн
Скорее всего у страницы есть тег <base>
Офлайн
И правда, не знал. BASE объясняет такое поведение браузера. Век живи, век учись :-).
..bw
Офлайн
“Скорее всего у страницы есть тег <base>”
Спасибо большое, Александр! Действительно, этот тег присутствует на странице и его присутствие многое объясняет в поведении браузера.
Офлайн