2012-10-15 1 views
1

Salut utilisateurs stackoverflow.jsoup - comment vérifier si une page Web existe ou non

Quand je faisais racler web, j'ai rencontré un problème qui, quand je gratter à travers une série de pages Web d'un site particulier, avec leurs URL étant

http://www.somewebsites.com/abc.php?number=0001 
http://www.somewebsites.com/abc.php?number=0002 
http://www.somewebsites.com/abc.php?number=0003 
.. 
.. 
http://www.somewebsites.com/abc.php?number=1234 

Quelque chose comme ça. Étant donné que certaines pages peuvent parfois être hors service et que le serveur peut les gérer en les redirigeant vers une autre page, dites la page d'accueil. De cette façon, mon programme de grattage rencontrera diverses exceptions liées à la modification de la structure syntaxique (car il s'agit d'une page différente). Je me demande s'il y a un moyen de vérifier si une page Web que j'écris existe ou pas, pour éviter que mon programme ne soit terminé dans ce cas.

J'utilise

Jsoup.connect() 

pour se connecter à cette page. Cependant, quand je visite la page Web échouée (redirigée), j'ai été redirigé vers une autre page. Dans mon programme, la console ne lance aucune exception à propos de la connexion. Au lieu de cela, l'exception est simplement un index hors limite car la page Web redirigée inattendue a une structure totalement différente.

Répondre

0

Depuis quelques-unes des pages peut être de temps en temps vers le bas et le serveur peut gérer en redirigeant vers une autre page, dire la page d'accueil

En général, quand une page sur un site n'est pas temporairement disponible et est redirigé, le client reçoit le code de réponse 302 (déplacé de façon permanente) ou 307 (déplacé temporairement) avec l'en-tête "Location" qui pointe vers la page redirigée. Il semble que vous pouvez configurer le Connection pour ne pas rediriger dans de tels cas, en définissant le followRedirects sur false. Ensuite, vous pouvez vérifier le code de réponse HTTP avant de convertir la réponse à Document pour un traitement ultérieur.

+0

Cependant, mon programme ne lance aucune exception liée à la connexion :( – Biscuitz

Questions connexes