est-il possible d'écrire un robot d'indexation en javascript?
Je veux analyse la page et vérifiez les hyperliens de cette page et également suivre ces liens hypertextes et de capturer les données de la page
source d'informationauteur Ashwin Mendon
Vous devez vous connecter pour publier un commentaire.
Généralement, navigateur JavaScript ne peut que ramper dans le domaine de son origine, parce que l'extraction de pages serait fait via Ajaxqui est limité par le De Même La Politique De L'Origine.
Si la page de l'exécution de l'analyseur de script est sur http://www.example.comalors que le script peut analyser toutes les pages http://www.example.com mais pas les pages de toute autre origine (sauf certains cas limite s'applique, par exemple, la Access-Control-Allow-Origin en-tête est défini pour les pages sur le serveur).
Si vous vraiment voulez écrire un complet robot dans le navigateur JS, vous pourriez écrire une extension de navigateur: par exemple, Les extensions de Chrome sont emballés à l'application Web s'exécuter avec les autorisations spéciales, y compris cross-origin Ajax. La difficulté avec cette approche est que vous aurez à écrire plusieurs versions de l'analyseur si vous voulez en charge plusieurs navigateurs. (Si le robot est juste pour un usage personnel, ce n'est probablement pas un problème.)
Si vous utilisez javascript côté serveur, c'est possible.
Vous devriez jeter un oeil à node.js
Et un exemple d'un robot d'indexation peut être trouvé dans le lien ci-dessous:
http://www.colourcoding.net/blog/archive/2010/11/20/a-node.js-web-spider.aspx
Nous avons pu analyser les pages à l'aide de Javascript côté serveur avec l'aide de headless webkit. Pour l'analyse, nous avons peu de bibliothèques comme PhantomJS, CasperJS, il y a aussi un nouveau wrapper sur PhantomJS appelé Cauchemar JS qui font les œuvres plus facile.
Ma configuration typique est d'utiliser une extension de navigateur avec l'origine de la croix de privilèges, qui est à la fois l'injection de l'analyseur de code et jQuery.
Une autre de prendre sur Javascript robots est d'utiliser un navigateur sans comme phantomJS ou casperJS (qui amplifie phantom pouvoirs)
Il existe des moyens de contourner la politique de " même origine avec JS. J'ai écrit un robot pour facebook, qui a recueilli des informations auprès facebook profils de mes amis et de mon ami et les amis de permis de filtrer les résultats selon le sexe, l'emplacement actuel, l'âge, l'état matrimonial (vous attrapez ma dérive). C'était simple. J'ai juste couru à partir de la console. De cette façon, votre script recevra la situation pour faire la demande sur le domaine actuel. Vous pouvez également faire un bookmarklet pour exécuter le script à partir de vos signets.
Une autre façon est de fournir un proxy PHP. Votre script d'accès proxy sur un domaine en cours et les dossiers de demande à partir d'un autre avec PHP. Juste être prudent avec ceux-ci. Ceux-ci pourraient obtenir détourné et utilisé comme un serveur mandataire par le 3e partie si vous n'êtes pas prudent.
Bonne chance, peut-être vous faire un ami ou deux dans le processus, comme je l'ai fait 🙂
C'est ce que vous avez besoin http://zugravu.com/products/web-crawler-spider-scraping-javascript-regular-expression-nodejs-mongodb
Ils utilisent NodeJS, MongoDB et ExtJs GUI
oui, il est possible
Il y a un côté client pour cette approche, l'utilisation de Firefox Greasemonkey extension. avec Greasemonkey vous pouvez créer des scripts à exécuter chaque fois que vous ouvrez l'url spécifiée.
voici un exemple:
si vous avez des url de ce type:
http://www.example.com/products/pages/1
http://www.example.com/products/pages/2
ensuite, vous pouvez utiliser quelque chose comme cela pour ouvrir toutes les pages contenant la liste des produits(exécuter manuellement)
}
ensuite, vous pouvez créer un script pour ouvrir tous les produits dans une nouvelle fenêtre pour chaque produit de la liste de la page et inclure cette url dans Greasemonkey pour que.
http://www.example.com/products/pages/*
et puis un script pour chaque page de produit pour extraire des données et appeler un webservice de transmettre les données et fermer la fenêtre et ainsi de suite.
J'ai fait un exemple javascript robot sur github.
Il est basé sur l'événement et l'utilisation d'une file d'attente en mémoire pour stocker toutes les ressources(ie. les url).
Comment utiliser dans votre nœud de l'environnement
Ici je vais juste vous montrer 2 de la méthode noyau d'un javascript robot.
Voici le lien github https://github.com/bfwg/node-tinycrawler.
C'est un javascript web crawler écrit de moins de 1000 lignes de code.
Cela devrait vous mettre sur la bonne voie.
Google Chrome équipe a publié marionnettiste août 2017, un nœud de la bibliothèque qui fournit une API de haut niveau pour à la fois décentralisée et non-headless Chrome (headless Chrome disponible depuis 59).
Il utilise une version intégrée de Chrome, de sorte qu'il est garanti pour fonctionner hors de la boîte. Si vous souhaitez utiliser un spécifique à la version Chrome, vous pouvez le faire en lançant marionnettiste avec un chemin de l'exécutable en tant que paramètre, tels que:
Un exemple de naviguer d'une page web et de prendre une capture d'écran de il montre comment il est simple (prises à partir de la page GitHub):