2012-09-13 1 views
1

de Possible en double:
Make a JavaScript-aware Crawlergrattoir Web qui gère JavaScript

J'essaie de comprendre ce à utiliser comme base pour un grattoir web basé sur PHP qui peut gérer des pages rendre en utilisant JavaScript. De nombreuses tentatives de raclement de sites Web (au moins celles que je gère) échouent maintenant à moins que le JS de ces pages ne soit exécuté. Les pages ne sont pas conçues pour revenir aux implémentations sans script. Cela inclut ceux qui utilisent intensément AJAX. Est-ce que n'importe qui aurait des suggestions par où commencer avec le développement d'un grattoir de Web qui peut manipuler des pages Web modernes et lourdement dépendantes de JavaScript?

Quelque chose qui peut être utilisé par PHP serait le meilleur.

+0

Quelle est votre page de grattage? pour quel contenu? –

+0

Vous ne pouvez pas gratter une page JS avec PHP –

+0

@Dragon Beaucoup de pages différentes avec beaucoup de contenu différent. Certains sites ne fonctionneront pas du tout sans JS. Désolé de paraître vague. Une partie est un travail privé pour les clients. – eComEvo

Répondre

2

Il est possible d'utiliser un moteur de navigateur Web en mode sans tête pour charger la page et analyser le DOM. PHP m'a soutenu à http://phantomjs.org/

+0

Cela pourrait bien fonctionner en utilisant [pjscrape] (http: //nrabinowitz.github.com/pjscrape /) avec une URL PHP pour appeler en utilisant jQuery pour traiter les résultats effacés vers une base de données. – eComEvo

1

Ces sites qui ont une forte utilisation d'ajax, appellent simplement les mêmes URL que la page, et construisent le contenu de votre site sur cette réponse plutôt que de demander la page.

Les sites qui ont lourd document.write ou équivalent cadre de celui-ci, vous pouvez probablement enlever simplement les balises d'espace ou match ou un contenu pertinent à l'aide regex simple et demande à nouveau plutôt que responsable du script la page qu'il demande ...

0

Vous devriez avoir un moteur JavaScript en PHP. Ou un Webkit sans tête sur la ligne de commande. Et même alors, cela deviendrait extrêmement compliqué. Donc, la réponse courte serait: Non, désolé, vous ne pouvez pas faire cela.

0

PHP supporte le moteur V8, donc je suppose que vous pourriez passer de javascript à V8. Ce n'est pas une belle chose à faire, j'utiliserais autre chose que PHP pour faire ça.

1

Vous pouvez utiliser Selenium qui est un outil d'automatisation du navigateur, puis utilisez l'une des liaisons PHP here, here, or here donc vous pouvez automatiser Sélénium de PHP.

+0

Selenium semble très utile. Pourrait être très utile avec d'autres applications que j'ai en tête. Merci! – eComEvo

Questions connexes