从Ruby中的URL中删除网站名称以外的所有内容

时间:2017-12-20 19:03:08

标签: ruby url gsub

我正在迭代一个URL列表。网址有不同的格式,如:

https://twitter.com/sdfaskj... 
https://www.linkedin.com/asdkfjasd...
http://google.com/asdfjasdj...

等。

我想使用Gsub或类似的东西来删除除了网站名称之外的所有内容,只能获得" twitter"," linkedin"," google&# 34;分别。

在我的脑海中,理想情况下,我想要像.gsub一样可以检查多种可能性(url.gsub(" https://或https://www。或http://等等) #34;,"")并在找不到任何内容时更换它们""。还需要删除名称后的所有内容,所以" .com / wkadslflj .. 。"

attributes.css("a").each do |attribute|
  attribute_url = attribute["href"]
  attribute_scrape = attribute_url.gsub("https://", "")
  binding.pry
end

2 个答案:

答案 0 :(得分:5)

我会考虑使用require 'public_suffix' require 'uri' url = 'https://www.linkedin.com/asdkfjasd' host = URI.parse(url).host # => 'www.linkedin.com' PublicSuffix.parse(host).sld # => 'linkedin' 组合来获取网址中的主机名和PublicSuffix gem来获取第二级域名:

CakeRoute::parse($url)

答案 1 :(得分:1)

您可以使用此Storage regexp:

Storage<int, StringDumbHandleWrapper> s;

输出:

gsub