使用正则表达式删除部分网址

这是网址:

url = "www.face.com/me/4000517004580.html?gps-id=5547572&scm=1007.19201.130907.0&scm_id=1007.19201.130907.0&scm-url=1007.19201.130907.0&pvid=56aacc48-cc78-4cb9-b176-c9acb7a0662c"

我需要删除.html之后的部分,所以它变成:

"www.face.com/me/4000517004580.html"


慕码人2483693
浏览 86回答 4
4回答

青春有我

您可以使用 python 的urllib将 url 解析为多个部分,然后从 url 中删除查询字符串from urllib.parse import urlparseurl = "www.face.com/me/4000517004580.html?gps-id=5547572&scm=1007.19201.130907.0&scm_id=1007.19201.130907.0&scm-url=1007.19201.130907.0&pvid=56aacc48-cc78-4cb9-b176-c9acb7a0662c"parse_result = urlparse(url)url = parse_result._replace(query="").geturl()  # Remove query from url

慕虎7371278

尝试:url.split('.html')[0]+'.html'结果:'www.face.com/me/4000517004580.html'

当年话下

内置urllib库可以在这里使用。from urllib.parse import urljoin, urlparseurl = 'www.face.com/me/4000517004580.html?gps-id=5547572&scm=1007.19201.130907.0&scm_id=1007.19201.130907.0&scm-url=1007.19201.130907.0&pvid=56aacc48-cc78-4cb9-b176-c9acb7a0662c' output = urljoin(url, urlparse(url).path) 

侃侃无极

当您不确定如何解决问题时,我建议您从一些文档开始。例如,您可以查看字符串方法和常用字符串操作。滚动浏览此列表,您将了解该find()功能:返回在切片 s[start:end] 中找到子字符串 sub 的字符串中的最低索引。可选参数 start 和 end 被解释为切片符号。如果未找到 sub,则返回 -1。所以要找到"?"你可以这样做:i = url.find("?")与其考虑如何删除部分字符串,不如考虑如何保留我们想要的部分。我们可以用切片来做到这一点:url = url[:i]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python