urltools:检索域无效

时间:2017-02-15 19:41:19

标签: r url

我有一个包含100K网址的数据框。下面是一个子集。

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

    if indexPath.row == 0 {

        let stockTable = StockTableVC()
        self.present(stockTable, animated: false, completion: nil)
    }

    else indexPath.row == 1 {

        let accountTable = AccountTableVC()
        self.present(accountTable, animated: false, completion: nil)
    }

    ...

然后我想提取实际的域名,我从URLs <- c("123kbk.weebly.com", "123kinderstreet.weebly.com", "118rocks.weebly.com", "100detonados.blogspot.com.br", "100detonados.blogspot.com.br", "12d3.x1.realtypromls.com", "15kdmh7773q7.asia.com3456.com", "weebly.com") test<-data.frame(URLs) URLs 1 123kbk.weebly.com 2 123kinderstreet.weebly.com 3 118rocks.weebly.com 4 100detonados.blogspot.com.br 5 100detonados.blogspot.com.br 6 12d3.x1.realtypromls.com 7 15kdmh7773q7.asia.com3456.com 8 weebly.com 包中的以下函数中得到两个不同的答案:

urltools

suffix_extract(domain(test$URLs)) host subdomain domain suffix 1 123kbk.weebly.com 123kbk weebly com 2 123kinderstreet.weebly.com 123kinderstreet weebly com 3 118rocks.weebly.com 118rocks weebly com 4 100detonados.blogspot.com.br <NA> 100detonados blogspot.com.br 5 100detonados.blogspot.com.br <NA> 100detonados blogspot.com.br 6 12d3.x1.realtypromls.com 12d3.x1 realtypromls com 7 15kdmh7773q7.asia.com3456.com 15kdmh7773q7.asia com3456 com 8 weebly.com <NA> weebly com 应该是域名,在这种情况下它是后缀。

然后我尝试了这个例子:

blogspot.com.br

当我尝试此操作时,host_extract(domain(test$URLs)) domain host 1 123kbk.weebly.com 123kbk 2 123kinderstreet.weebly.com 123kinderstreet 3 118rocks.weebly.com 118rocks 4 100detonados.blogspot.com.br 100detonados 5 100detonados.blogspot.com.br 100detonados 6 12d3.x1.realtypromls.com 12d3 7 15kdmh7773q7.asia.com3456.com 15kdmh7773q7 8 weebly.com weebly 有效,但主持人不会blogspot.com.br12d3.x1。它还使15kdmh7773q7.asia成为最后一行中的主机,我将用它来删除域列表中的主机。

是否有更好的功能来提取域名?或者有没有办法可以使用这两个函数来解决它所犯的错误?

谢谢!

1 个答案:

答案 0 :(得分:0)

所以,它不需要修复,因为它没有犯任何错误 - 它正在完成每个函数预期要做的事情。

在第一种情况下,正如suffix_extract中的suffix所示,它正在寻找后缀。这些与域名或顶级域名不同:后缀是域名和TLD的组合,用户可以在其中注册域名。这就是它为100detonados.blogspot.com.br拉出子域名的原因:blogspot.com及其变体是公共后缀,可以在public suffix list中看到,因此它会从blogspot中取出所有内容作为后缀。 Weebly.com没有注册为后缀,但.com是 - 因此.com被拉出来并且小心翼翼地留作子域名。

在第二种情况下,它正在寻找主机,它是域中最低级别的部分:如果您有子域,则最低子域是主机,否则域名是主机。再一次,它似乎正在完成它应该做的事情。

你到底想要得到什么?通常理解的“域名”,没有任何顶级域名或子域名,或子域名?