我想重新格式化列表中的值。我正在尝试使用 scrapy 从网站中提取 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”。 如果有人有任何提示,我将不胜感激!
谢谢
请您参考如下方法:
这是创建 URL 的更可靠的方法:
from urllib.parse import unquote
region_urls = [response.urljoin(unquote(x)) for x in regions]
urljoin负责根据当前响应的基本 URL 加上相对 URL 创建正确的绝对 URL。
unquote处理 %.. 符号,以防您还得到其他符号。
