2017-02-15 9 views
0

У меня есть дата-карта с URL-адресами 100K. Ниже приведено подмножество.urltools: получение доменов не работает

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 хостом в последней строке, который я собирался использовать, чтобы удалить их из списка доменов.

Есть ли более эффективная функция для извлечения доменов? Или есть способ, которым я могу использовать обе эти функции, чтобы исправить ошибку, которую она совершает?

Спасибо!

ответ

0

Таким образом, он не нуждается в исправлении, потому что он не совершает ошибок - он делает именно то, что каждая функция должна делать.

В первом случае, поскольку suffix в суффикс_экстрате предлагает, он ищет суффиксы. Они не совпадают с именами доменов или доменами верхнего уровня: суффикс представляет собой комбинацию имени домена и TLD, где пользователи могут регистрировать домены. Вот почему он вытаскивает субдомен для 100detonados.blogspot.com.br: blogspot.com и его варианты являются общедоступными суффиксами, и их можно увидеть в public suffix list, поэтому он вытаскивает все из blogspot в качестве суффикса. Weebly.com не зарегистрирован как суффикс, но .com - поэтому почему .com вытащен, а weebly оставлен как субдомен.

Во втором случае он ищет хост, который является частью нижнего уровня домена: если у вас есть поддомены, то самый низкий субдомен является хостом, в противном случае доменное имя является хостом. Опять же, похоже, он делает именно то, что он должен делать.

Что именно вы хотите получить, здесь? «Доменное имя» обычно понимается без каких-либо доменов верхнего уровня или вспомогательных доменов или поддоменов?