Comment mettre en place une web grattoir en PHP?
Ce intégrés dans les fonctions de PHP sont utiles pour le web grattage? Quelles sont les bonnes ressources (web ou print) pour se lever à la vitesse sur le web scraping avec PHP?
- Je voudrais recommander cette classe je suis récemment tombé sur. Simple HTML DOM Parser
- PHP est particulièrement mauvaise langue. Il manque un événement piloté par le cadre qui est presque nécessaire pour cette tâche. Pouvez-vous analyser un site avec -- oui. Arriverez-vous à analyser un grand nombre de sites bien? Pas de.
- Se recroquevillent et DOMdocument être adapté pour le raclage des prix et de l'image des produits provenant de plusieurs sites web (à la sortie sur mon site)? Par exemple ce Stackoverflow lien Si non, que suggérez-vous?
- Il suffit de l'essayer, si ça marche c'est assez bon pour vous. Le noeud est un bien meilleur choix pour la construction d'un site web d'un grattoir. Aussi, Phantom.JS (si vous avez besoin de quelque chose de moderne qui a fait un dom et exécute le javascript sur elle).
Vous devez vous connecter pour publier un commentaire.
De grattage en général comprend 3 étapes:
à une URL spécifiée
le html qui est retourné en tant que
réponse
que html, le texte que vous souhaitez
gratter.
Pour accomplir les étapes 1 et 2 ci-dessous est une simple classe php qui utilise Curl pour récupérer des pages web en utilisant soit GET ou POST. Après que vous obteniez le HTML, il suffit d'utiliser des Expressions Régulières pour accomplir l'étape 3 de l'analyse du texte que vous souhaitez gratter.
Pour les expressions régulières, mon préféré tutoriel du site est la suivante:
Les Expressions Régulières Tutoriel
Mon programme Préféré pour travailler avec les RegExs est Regex Copain. Je vous conseille d'essayer la démo de ce produit même si vous n'avez pas l'intention de l'acheter. C'est un outil précieux et même de générer du code pour votre regexs que vous faites dans la langue de votre choix (y compris php).
Utilisation:
Classe PHP:
curl_setopt($this->curl,CURLOPT_COOKIEJAR, $this->cookieJar); curl_setopt($this->curl,CURLOPT_COOKIEFILE, $this->cookieJar);
$this->curl = curl_init($url);
qui va ouvrir une nouvelle session à chaque fois. Cette initialisation est utilisé dans la fonction et la fonction postForm$cookieJar
avec$this->$cookieJar
Je recommande La Goutte, une simple Web PHP Grattoir.
Exemple D'Utilisation:-
Créer une Goutte de Client (qui s'étend à
Symfony\Component\BrowserKit\Client
):Faire des demandes avec la
request()
méthode:La
request
méthode retourne unCrawler
objet(
Symfony\Component\DomCrawler\Crawler
).Cliquez sur les liens:
Soumettre des formulaires:
Extraire des données:
ScraperWiki est un projet plutôt intéressant.
Permet de construire des grattoirs en ligne en Python, Ruby ou PHP - j'ai été en mesure d'obtenir une simple tentative, en quelques minutes.
Si vous besoin de quelque chose qui est facile à maintenir, plutôt que rapide à exécuter, elle pourrait aider à utiliser un navigateur scriptable, comme De SimpleTest.
voici une autre: un simple PHP Racleur sans Regex.
Décapage peut être assez complexe, en fonction de ce que vous voulez faire. Avoir une lecture de cette série de tutoriels sur Les Bases De l'Écriture d'Un Grattoir En PHP et voir si vous pouvez vous familiariser avec elle.
Vous pouvez utiliser les mêmes méthodes pour automatiser la forme de signe-ups, les connexions, même faux, en cliquant sur les Annonces! Les principales limitations à l'utilisation de CURL mais, pour qu'il ne prend pas en charge l'utilisation de javascript, donc si vous essayez de gratter un site qui utilise AJAX pour la pagination par exemple, il peut devenir un peu difficile...mais encore, il ya des façons de contourner cela!
file_get_contents()
pouvez prendre une URL distante et vous donnent la source. Vous pouvez ensuite utiliser les expressions régulières (avec le Perl-compatible fonctions) pour saisir ce que vous avez besoin.Par curiosité, ce que vous essayez de gratter?
J'aimerais utiliser libcurl ou Perl LWP (libwww pour perl). Est-il un libwww php?
Grattoir classe de mon cadre:
La boucle de la bibliothèque vous permet de télécharger des pages web. Vous devriez regarder dans les expressions régulières pour faire le grattage.