Шаг 241.
Основы языка Python. Взаимодействие с Интернетом. Преобразование относительного URL-адреса в абсолютный

    На этом шаге мы рассмотрим функцию, выполняющую эту операцию.

    Очень часто в коде Web-страниц указываются не абсолютные URL-адреса, а относительные. При относительном URL-адресе путь определяется с учетом местоположения страницы, на которой находится ссылка, или значения параметра href тега <base>. Преобразовать относительную ссылку в абсолютный URL-адрес позволяет функция urljoin() из модуля urllib.parse. Формат функции:

  urljoin(<Базовый URL-адрес>, <Относительный или абсолютный URL-адрес> 
    [, <Разбор якоря>])

    Для примера рассмотрим преобразование различных относительных интернет-адресов.

>>> from urllib.parse import urljoin
>>> urljoin('http://www.admin.ru/fl/f2/test.html', 'file.html')
'http://www.admin.ru/fl/f2/file.html'
>>> urljoin('http://www.admin.ru/f1/f2/test.html', 'f3/file.html')
'http://www.admin.ru/f1/f2/f3/file.html'
>>> urljoin('http://www.admin.ru/f1/f2/test.html', '/file.html')
'http://www.admin.ru/file.html'
>>> urljoin('http://www.admin.ru/f1/f2/test.html', './file.html')
'http://www.admin.ru/f1/f2/file.html'
>>> urljoin('http://www.admin.ru/f1/f2/test.html', '../file.html')
'http://www.admin.ru/f1/file.html'
>>> urljoin('http://www.admin.ru/f1/f2/test.html', '../../file.html')
'http://www.admin.ru/file.html'
>>> urljoin('http://www.admin.ru/f1/f2/test.html', '../../../file.html')
'http://www.admin.ru/../file.html'

    В последнем случае мы специально указали уровень относительности больше, чем нужно. Как видно из результата, в таком случае формируется некорректный интернет-адрес.

    На следующем шаге мы рассмотрим разбор HTML-эквивалентов.




Предыдущий шаг Содержание Следующий шаг