Python和Java的URL规范化库
urlcanon的Python项目详细描述
python和java的url规范化(规范化)库。
目前提供:
- 一个url解析器,它精确地保存输入字节
- 尝试匹配规范化的预先计划的规范化规则集 隐含在parsing rules used by browsers
- 另一种适合排序和前缀匹配的url序列化: SSURT。
状态:稳定并在生产中使用一段时间。但没有api或输出 稳定的保证。Java和 python版本。
示例
Python
>>>importurlcanon>>>input_url="http://///EXAMPLE.com:80/foo/../bar">>>parsed_url=urlcanon.parse_url(input_url)>>>print(parsed_url)http://///EXAMPLE.com:80/foo/../bar>>>urlcanon.whatwg(parsed_url)<urlcanon.parse.ParsedUrlobjectat0x10eb13a58>>>>print(parsed_url)http://example.com/bar>>>print(parsed_url.ssurt())b'com,example,//:http/bar'>>>>>>rule=urlcanon.MatchRule(ssurt=b'com,example,//:http/bar')>>>urlcanon.whatwg.rule_applies(rule,b'https://example..com/bar/baz')False>>>urlcanon.whatwg.rule_applies(rule,b'HTtp:////eXAMple.Com/bar//baz//..///quu')True
pypi中提供了python版本:
pip install urlcanon
爪哇语
StringinputUrl="http://///EXAMPLE.com:80/foo/../bar";ParsedUrlparsedUrl=ParsedUrl.parseUrl(inputUrl);System.out.println(parsedUrl);// http://///EXAMPLE.com:80/foo/../bar Canonicalizer.WHATWG.canonicalize(parsedUrl);System.out.println(parsedUrl);// http://example.com/bar System.out.println(parsedUrl.ssurt());// "com,example,//:http/bar"
Java版本在Maven中央存储库中提供:
<dependency><groupId>org.netpreserve</groupId><artifactId>urlcanon</artifactId><version>0.1.1</version></dependency>
许可证
- 版权所有(c)2016-2018互联网档案
- 版权所有(c)2016-2017澳大利亚国家图书馆
根据apache许可证2.0版(以下简称“许可证”)授权;您可以 除非符合许可证,否则不要使用此软件。你可以 在
http://www.apache.org/licenses/LICENSE-2.0
除非适用法律要求或书面同意,否则软件 根据许可证分发是按“原样”分发的, 无任何明示或默示的保证或条件。 有关管理权限的特定语言和 许可下的限制。