Python社区  »  Python

操作列表(URL)中的值-Python

Matija Žiberna • 1 周前 • 16 次点击  

我想重新格式化列表中的值。我试图从一个网站上提取与剪贴网址。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']

我需要一个简单的查找和替换“/”和“附加” https://worldmap.com “在当前值之前。

谢谢你

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/54684
 
16 次点击  
分享到微博
文章 [ 2 ]  |  最新文章 1 周前
Jondiedoop
Reply   •   1 楼
Jondiedoop    1 年前

使用列表理解和添加字符串:

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']
malberts
Reply   •   2 楼
malberts    1 年前

以下是创建URL的更可靠的方法:

from urllib.parse import unquote

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

urljoin 根据当前响应的基URL和相对URL创建正确的绝对URL。

unquote %.. 符号,以防你也得到别人。