我有一个有100K个URL的数据帧。下面是一个子集。
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。它还使weebly成为最后一行中的主机,我将使用它从域列表中删除那些主机。
有没有更好的函数来提取域名?或者有没有一种方法可以让我同时使用这两个函数来修复它所犯的错误?
谢谢!
发布于 2017-02-16 15:24:10
因此,它不需要修复,因为它没有犯任何错误-它所做的正是每个函数期望做的事情。
在第一种情况下,正如suffix_extract中的suffix所建议的那样,它查找后缀。这些与域名或顶级域不同:后缀是域名和TLD的组合,用户可以在其中注册域。这就是为什么它去掉了博客的子域: blogspot.com及其变体是公共后缀,并且可以在public suffix list中看到,所以它去掉了100detonados.blogspot.com.br上的所有东西作为后缀。weebly没有注册为后缀,但.com注册为后缀-这就是为什么.com被删除,而weebly被保留为子域的原因。
在第二种情况下,它查找主机,这是域的最低级别部分:如果有子域,最低的子域是主机,否则域名是主机。再一次,它似乎正在做它应该做的事情。
你到底想在这里得到什么?通常理解的“域名”,没有任何顶级或子域或子域?
https://stackoverflow.com/questions/42258600
复制相似问题