【问题标题】:Python 3 : Why would you use urlparse/urlsplit [closed]Python 3:为什么要使用 urlparse/urlsplit [关闭]
【发布时间】:2015-05-07 03:13:29
【问题描述】:

我不确定这些模块的用途。我知道他们将各自的 url 拆分为其组件,但为什么这会有用,或者什么是何时使用 urlparse 的示例?

【问题讨论】:

  • 这个问题对我来说似乎太宽泛了。
  • 为什么将 url 拆分成组件会有用?
  • 这取决于你想要做什么。
  • 嗯。关闭过于宽泛。它仅比“您将字符串连接用于什么用途?”更加集中。
  • 用于获取查询参数、主机名等。是的@IgnacioVazquez-Abrams 似乎太宽泛了。 OP 需要阅读一些教程并学习而不是在这里发布问题

标签: python-3.4 urlparse


【解决方案1】:

只有在需要参数时才使用urlparse。我已经在下面解释了为什么需要参数。

Reference

urllib.parse.urlsplit(urlstring, scheme='', allow_fragments=True)

这类似于 urlparse(),但不会将参数从 网址。这通常应该用来代替 urlparse() 如果更多 最近的 URL 语法允许将参数应用于每个部分 需要 URL 的路径部分(请参阅RFC 2396

主机名对于存储在变量中以供以后使用或添加参数、查询主机名以在抓取时获取您想要的网页总是有用的。

关于参数:

仅供参考:根据 RFC2396,url 中的参数

对当前客户端应用程序的广泛测试表明, 大多数已部署的系统不使用“;”表示的字符 尾随参数信息,以及分号的存在 在路径段中不影响该路径的相对解析 分割。因此,参数已作为单独的参数被删除 组件,现在可能出现在任何路径段中。他们的影响有 已从解析相对 URI 的算法中删除 参考。

参数在抓取时很有用, 例如如果网址是http://www.example.com/products/women?color=green

当你使用urlparse时,你会得到参数。现在您必须将其更改为men,因此它将是http://www.example.com/products/men?color=greenkidsgirlboy 等等。

【讨论】:

  • 我阅读了文档,但为什么获取主机名或 url 的参数会有用?你打算用这些做什么?
  • @AranFreel 我已经更新了答案。
  • url = ''example.com/products'' 参数 = 'men' url + 参数
  • @AranFreel 我建议你尝试一下,如果你在尝试了这么多之后发现有困难,请在 Stack Overflow 中提出新的问题。
猜你喜欢
  • 2011-07-25
  • 2010-10-01
  • 2017-02-17
  • 2011-08-21
  • 2015-03-11
  • 2013-02-17
  • 1970-01-01
  • 2011-11-14
相关资源
最近更新 更多