我有一个包含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.br
和12d3.x1
。它还使15kdmh7773q7.asia
成为最后一行中的主机,我将用它来删除域列表中的主机。
是否有更好的功能来提取域名?或者有没有办法可以使用这两个函数来解决它所犯的错误?
谢谢!
答案 0 :(得分:0)
所以,它不需要修复,因为它没有犯任何错误 - 它正在完成每个函数预期要做的事情。
在第一种情况下,正如suffix_extract中的suffix
所示,它正在寻找后缀。这些与域名或顶级域名不同:后缀是域名和TLD的组合,用户可以在其中注册域名。这就是它为100detonados.blogspot.com.br
拉出子域名的原因:blogspot.com及其变体是公共后缀,可以在public suffix list中看到,因此它会从blogspot中取出所有内容作为后缀。 Weebly.com没有注册为后缀,但.com是 - 因此.com被拉出来并且小心翼翼地留作子域名。
在第二种情况下,它正在寻找主机,它是域中最低级别的部分:如果您有子域,则最低子域是主机,否则域名是主机。再一次,它似乎正在完成它应该做的事情。
你到底想要得到什么?通常理解的“域名”,没有任何顶级域名或子域名,或子域名?