2015-08-01 1 views
0

Je fais du scrap web et j'utilise Jsoup pour analyser les fichiers html et je crois comprendre que Jsoup ne fonctionne pas bien avec les pages Web dynamiques. Existe-t-il un moyen de vérifier si une page Web est dynamique afin que je ne cherche pas à l'analyser en utilisant Jsoup?Comment vérifier si la page Web est statique ou dynamique

Répondre

2

Réponse courte: Pas vraiment. Vous devez vérifier au cas par cas

Explication: Les sites Web d'aujourd'hui sont remplis d'appels ajax. Beaucoup chargent des données importantes, d'autres ne sont magiquement intéressantes que lorsque vous grattez le contenu d'un site. Beaucoup de sites très modernes font même les deux, ils envoient une page complète au client où elle est transformée en application Web (rendu isomorphe des mots clés)

Vous devez donc vérifier le site en question au cas par cas. Ce n'est pas si difficile que ça. Lancez Curl et voyez si vous avez le contenu dont vous avez besoin. Sinon, il n'est souvent pas difficile de comprendre la structure et les paramètres des appels ajax. Si vous faites cela, alors vous obtenez souvent même du contenu dynamique avec seulement Jsoup.

+0

Merci, c'est très utile –

-2

Vous ne pouvez pas être sûr à 100% qu'un site Web est dynamic ou static, car il existe des moyens de masquer les indices qui montrent qu'un site Web est dynamic. mais vous pouvez vérifier sur un nombre limité de têtes de réponse HTTP pour vérifier si sa dynamique ou statique:

Cookie: Un cookie HTTP envoyé précédemment par le serveur avec Set-Cookie

X-Csrf-Token: Utilisé pour empêcher la falsification de requêtes intersite. Les noms d'en-tête alternatifs sont les suivants: X-CSRFToken et X-XSRF-TOKEN

X-Powered-By: spécifie la technologie (par exemple, ASP.NET, PHP, JBoss) supportant l'application Web (détails de la version sont souvent dans X-Runtime, X -version ou X-réSEAU-version)

ce sont 3 en-têtes HTTP qu'un script serveur est impliqué pour générer (pour autant que je sache)

chances aussi sont qu'une page Web avec des éléments liés à la forme devrait avoir un mécanisme côté serveur pour traiter les données de formulaire.

+0

Je défie mes amis qui ont downvoted ma réponse pour expliquer leurs solutions possibles et les raisons – Ramin

+0

Ne sait pas. Ma réponse a également obtenu des votes négatifs, même si elle est maintenant positive. Peut-être quelqu'un qui déteste gratter ou simplement un esprit destructeur au travail. Je vous ai donné +1 car cela éclaire la question sous un autre angle que ma réponse. – luksch

+1

J'ai downvoted votre réponse car elle ne répond pas vraiment à la question. Comment exactement les en-têtes que vous avez mentionnés aident à déterminer si le site Web utilise Ajax par exemple? – paulus