许多网站都会在url链接上添加标签以进行跟踪,例如
如果我们删除附录“?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]
应该可以工作,否则答案会在“?”上分割网址会失败,例如,
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/