Je me demande comment je peux savoir si un site Web fournit une photo ou une vidéo en vérifiant son URL. J'ai enquêté sur le site Web qui m'intéresse et j'ai découvert que la plupart des liens que j'ai sont sous cette forme : (je ne sais pas si je peux réellement nommer le site Web, donc pour l'instant je l'ai juste écrit sous forme d'exemple) :

http://www.example.com/abcdef

exemple est le domaine principal et abcdef est un nombre comme 69964. Le modèle intéressant que j'ai trouvé est qu'après avoir entré cette URL, s'il y a réellement une vidéo, l'URL changera automatiquement à https://www.example.com/abcdef#mode=tour alors que s'il ne s'agit que d'une photo, elle deviendra https://www.example.com/abcdef#mode=0

Maintenant, j'ai une liste d'URL de ce site Web et je veux juste vérifier s'il contient une photo ou une vidéo, ou s'il ne fonctionne pas (URL non valide). Y'a-t'il un quelconque moyen d'y arriver?

0
Ross_you 29 oct. 2020 à 21:20

1 réponse

Meilleure réponse

J'ai donc une solution assez simple pour cela.

L'inspection des URL fournies par l'OP (par exemple, https://www.pixilink.com/93313) indique que la valeur par défaut #mode= est fournie par la variable initial_mode = dans un javascript intégré. Ainsi, pour établir si une URL sera par défaut "image" (#mode=0) ou vidéo (#mode=tour) peut être accompli en étudiant la valeur attribuée à cette variable.

#Function to get the value of initial_mode from the URL
urlmode <- function(x){
  mycontent <- readLines(x)
  mypos <- grep("initial_mode = ", mycontent)
  
  if(grepl("0", mycontent[mypos])){
    cat("\n", x, "has default initial_mode picture: #mode=0 \n")
    return("picture")
  } else if(grepl("tour", mycontent[mypos])){
    cat("\n", x, "has default initial_mode video: #mode=tour \n")
    return("video")
  } else{
    cat("\n", x, "is an invalid URL. \n")
    return("invalid")
  }
}


#Example URLs to demonstrate functionality
myurl1 <- "https://www.pixilink.com/93313"
myurl2 <- "https://www.pixilink.com/69964"


urlmode(myurl1)
#
# https://www.pixilink.com/93313 has default initial_mode picture: #mode=0 
#[1] "picture"
#Warning message:
#In readLines(x) :
#  incomplete final line found on 'https://www.pixilink.com/93313'
#

urlmode(myurl2)
#
# https://www.pixilink.com/69964 has default initial_mode video: #mode=tour 
#[1] "video"
#Warning message:
#In readLines(x) :
#  incomplete final line found on 'https://www.pixilink.com/69964'

Inutile de dire qu'il s'agit d'une fonction extrêmement simpliste qui échouera (très probablement) à l'exception du (sous-)ensemble de cas idéal. Mais c'est un début.

1
Dunois 29 oct. 2020 à 19:31