使用python和selenium。我在列表中有多个URL作为字符串。但是我希望能够在字符串的子字符串之后替换字符串的一部分(字符串的结尾)。
我尝试了replace()。但是,这只能代替我具体说明的内容。例如,此链接:但是,当我浏览URL列表时,'sku ='和'planSku'之后的数字会发生变化
phonePlanLinksRaw = driver.find_elements_by_xpath("//div[starts-with(@class,'deviceListItem')]/a")
phonePlanLinks = [] #contains the links to all phones
for element in phonePlanLinksRaw:
phonePlanLinks.append(str(element.get_attribute('href')))
phonePlanLinks.pop() #removes bring your own phone
# prints all links
numLink = 1
for element in range(len(phonePlanLinks)):
print("phone " + str(numLink) + " : " + phonePlanLinks[element])
numLink += 1
我希望能够在字符串中的某个点之后在URL之外的子字符串中交换子字符串。
'https://shop.freedommobile.ca/devices/Apple/iPhone_XS_Max?sku=190198786135&planSku='停留
然后我希望能够在'planSku'之后附加我自己的子字符串
答案 0 :(得分:1)
您可以将.split()与您的关键字用作分隔符,然后将关键字和值连接到第一部分:
url = "https://shop.freedommobile.ca/devices/Apple/iPhone_XS_Max?sku=190198786135&planSku=Freedom%20Big%20Gig%2015GB"
keyword ="planSku="
newValue ="MyValue"
newUrl =url.split(keyword,1)[0]+keyword+newValue
print(newUrl)
# https://shop.freedommobile.ca/devices/Apple/iPhone_XS_Max?sku=190198786135&planSku=MyValue
您还可以使用正则表达式替换(重新模块)
import re
newUrl = re.sub(f"({keyword})(.*)",f"\\g<1>{newValue}",url)
但是您必须小心使用关键字和newValue中的特殊字符(如果需要,可以使用re.escape()对其进行转义)。
答案 1 :(得分:0)
您可以将URL用作这样的字符串:
url = 'https://shop.freedommobile.ca/devices/Apple/iPhone_XS_Maxsku={}'
在for中,您可以执行以下操作:
for element in phonePlanLinksRaw:
urlnew = url.format(element)
然后,列表中的值将输入到字符串中。 “ {}”将适合“ element”值。