Управление значениями в списке (URL) - Python - PullRequest
0 голосов
/ 16 февраля 2019

Я хотел бы переформатировать значение из списка.Я пытаюсь извлечь URL с веб-сайта с помощью скрапа.Scrapy возвращает относительный URL, который затем сохраняется в списке.Я хотел бы объединить абсолютный URL с относительным URL и выполнить некоторое сопоставление и заменить относительный URL в самом списке, который затем будет использован для следующего шага.

Вот так выглядит текущий список:

regions = ['/listings/in/spain%2Fandalucia', '/listings/in/spain%2Faragon', '/listings/in/spain%2Fasturias', '/listings/in/spain%2Fbalearic-islands']

И вот как это будет выглядеть идеально.

regions_final = ['https://worldmap.com/listings/in/spain/andalucia', 'http://worldmap.comlistings/in/spain/Faragon', 'http://worldmap.comlistings/in/spain/fasturias', 'http://worldmap.com/listings/in/spain/balearic-islands']

Мне нужно просто найти и заменить "% 2F" на "/" и добавить "https://worldmap.com" перед текущими значениями. Если у кого-то есть какие-либо советы, я был бы очень признателен за помощь!

Спасибо

Ответы [ 2 ]

0 голосов
/ 16 февраля 2019

Вот более надежный способ создания URL:

from urllib.parse import unquote

region_urls = [response.urljoin(unquote(x)) for x in regions]

urljoin заботится о создании правильного абсолютного URL на основе того, каким является базовый URL текущего ответа,плюс относительный URL.

unquote заботится о символах %.., в случае, если вы получаете и другие.

0 голосов
/ 16 февраля 2019

Используйте понимание списка и добавление строк:

regions = ['/listings/in/spain%2Fandalucia', '/listings/in/spain%2Faragon', '/listings/in/spain%2Fasturias', '/listings/in/spain%2Fbalearic-islands']

region_urls = ['https://www.worldmap.com' + x.replace('%2F', '/') for x in regions]
#['https://www.worldmap.com/listings/in/spain/andalucia',
# 'https://www.worldmap.com/listings/in/spain/aragon',
# 'https://www.worldmap.com/listings/in/spain/asturias',
# 'https://www.worldmap.com/listings/in/spain/balearic-islands']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...