gpt4 book ai didi

php - 如何使用 python/PHP 去除 URL 链接中的冗余?

转载 作者:行者123 更新时间:2023-11-27 22:43:48 24 4
gpt4 key购买 nike

很多网站会在url链接中添加标签以进行跟踪,例如

http://www.washingtonpost.com/blogs/answer-sheet/post/report-we-still-dont-know-much-about-charter-schools/2012/01/13/gIQAxMIeyP_blog.html?wprss=linkset&tid=sm_twitter_washingtonpost

如果我们删除附录“?wprss=linkset&tid=sm_twitter_washingtonpost”,仍会转到同一页面。是否有任何通用方法可以删除那些冗余元素?任何评论都会有所帮助。

谢谢!

最佳答案

从 URL 中删除查询、片段部分

在 Python 中使用 urlparse :

import urlparse

url = urlparse.urlsplit(URL) # parse url
print urlparse.urlunsplit(url[:3]+('','')) # remove query, fragment parts

或者更轻量级的方法,但它可能不太通用:

print URL.partition('?')[0]

根据 rfc 3986可以使用正则表达式解析 URI:

/^(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/

因此,如果没有片段标识符(上述正则表达式的最后一部分)或存在查询组件(倒数第二部分),则 URL.partition('?')[0] 应该可以,否则会在“?”上拆分 url 的答案会失败,例如,

http://example.com/path#here-?-ereh

但是 urlparse 仍然回答 works .

检查是否可以通过URL访问页面

在 Python 中:

import urllib2

try:
resp = urllib2.urlopen(URL)
except IOError, e:
print "error: can't open %s, reason: %s" % (URL, e)
else:
print "success, status code: %s, info:\n%s" % (resp.code, resp.info()),

resp.read() 可用于读取页面内容。

关于php - 如何使用 python/PHP 去除 URL 链接中的冗余?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8868092/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com