【问题标题】:how to take bigger urls by using URI.parse or Domainatrix.parse but not using gsub or split?如何使用 URI.parse 或 Domainatrix.parse 获取更大的 url 但不使用 gsub 或 split?
【发布时间】:2022-12-19 14:12:51
【问题描述】:
2.5.0 :150 > url = 'https://www.online.citibank.co.in/credit-card/apply'
 => "https://www.online.citibank.co.in/credit-card/apply" 
2.5.0 :151 > Domainatrix.parse(url)
 => #<Domainatrix::Url:0x00007fd7850df4a8 @scheme="https", @host="www.online.citibank.co.in", @port="", @url="https://www.online.citibank.co.in/credit-card/apply", @public_suffix="co.in", @domain="citibank", @subdomain="www.online", @path="/credit-card/apply", @localhost=false, @ip=false> 
2.5.0 :152 > Domainatrix.parse(url).domain_with_public_suffix
 => "citibank.co.in" 

它越来越“花旗银行.co.in”

但我需要 online.citibank.co.in 而不使用 gsub 或 split thing

谁能帮忙

【问题讨论】:

  • 由于 www 实际上是一个子域,而不是 URL 的单独部分,因此没有内置方法可以直接为您提供所需内容。如果没有www,服务器可能无法从相同的 URL 重定向,因此您忽略它的后果自负。
  • 它不是重定向的一部分,我需要从 online.citibank.co.in/credit-card/apply 中取出 online.citibank.co.in 并使用 Domainatrix 存储在数据库中

标签: ruby


【解决方案1】:

利用URI#parse

虽然你也会得到www,但最好使用它,因为你不必手动处理各种情况。

url = 'https://www.online.citibank.co.in/credit-card/apply'
#=> "https://www.online.citibank.co.in/credit-card/apply"

parsed_url = URI.parse(url)
#=> #<URI::HTTPS https://www.online.citibank.co.in/credit-card/apply>

parsed_url.host
#=> "www.online.citibank.co.in"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-01
    • 1970-01-01
    • 2019-03-30
    • 1970-01-01
    • 1970-01-01
    • 2014-07-16
    相关资源
    最近更新 更多