在 python 中更改 url

Change url in python

如何更改此 url 中的 activeOffset?我正在使用 Python 和一个 while 循环

https://www.dieversicherer.de/versicherer/auto---reise/typklassenabfrage#activeOffset=10&orderBy=kh&orderDirection=ASC

首先应该是 10,然后是 20,然后是 30 ...

我尝试了 urlparse,但我不明白如何增加数字

谢谢!

如果这是一个固定的URL,你可以在URL中写activeOffset={},然后用format{}替换为特定的数字:

url = "https://www.dieversicherer.de/versicherer/auto---reise/typklassenabfrage#activeOffset={}&orderBy=kh&orderDirection=ASC"

for offset in range(10,100,10):
  print(url.format(offset))

如果您无法修改 URL(因为您将其作为程序其他部分的输入),您可以使用正则表达式将出现的 activeOffset=... 替换为所需的数字(reference):

import re

url = "https://www.dieversicherer.de/versicherer/auto---reise/typklassenabfrage#activeOffset=10&orderBy=kh&orderDirection=ASC"

query = "activeOffset="
pattern = re.compile(query + "\d+") # \d+ means any sequence of digits

for offset in range(10,100,10):
  # Replace occurrences of pattern with the modified query
  print(pattern.sub(query + str(offset), url))

如果你想使用urlparse,你可以将前面的方法应用到urlparse返回的fragment部分:

import re

from urllib.parse import urlparse, urlunparse

url = "https://www.dieversicherer.de/versicherer/auto---reise/typklassenabfrage#activeOffset=10&orderBy=kh&orderDirection=ASC"

query = "activeOffset="
pattern = re.compile(query + "\d+") # \d+ means any sequence of digits

parts = urlparse(url)

for offset in range(10,100,10):
  fragment_modified = pattern.sub(query + str(offset), parts.fragment)
  parts_modified = parts._replace(fragment = fragment_modified)
  url_modified = urlunparse(parts_modified)
  print(url_modified)