2009-11-12 7 views
0

J'ai rencontré un problème que malheureusement je ne peux pas sembler dépasser, je suis aussi juste un nouveau-né à Ruby sur rails malheureusement d'où le nombre de questionsScraping HTML caché (quand visible = faux) en utilisant Hpricot (Ruby on Rails)

Je cherche à gratter une page Web comme les suivantes:

http://www.yellowpages.com.mt/Malta/Grocers-Mini-Markets-Retail-In-Malta-Gozo.aspx 

Je voudrais gratter les adresses, téléphones et URL de la page suivante qui dans ce cas est

http://www.yellowpages.com.mt/Malta/Grocers-Mini-Markets-Retail-In-Malta-Gozo+Ismol.aspx 

J'ai essayé à peu près tout ce que je pouvais penser, mais rien ne semble fonctionner parce qu'ils sont mis à l'invisible ou alors.

L'adresse se trouve dans une étiquette h3, mais elle ne semble pas être déchirable. J'ai également regardé dans ScRUBYt de l'URL suivante http://www.rubyrailways.com/ajax-scraping-with-scrubyt-linkedin-google-analytics-yahoo-suggestions/, mais je ne peux vraiment pas sembler trouver des têtes ou des queues de la façon de les appliquer dans ce cas.

J'apprécierais vraiment les pointeurs car c'est un obstacle que j'ai vraiment besoin de dépasser pour avancer dans ma mission. Merci d'avance pour votre aide.

Répondre

0

Je n'ai pas de réponse à votre question, mais je pensais que je signale à l'épisode Railscast de Ryan Bates à l'écran de grattage avec rubis: http://railscasts.com/episodes/173-screen-scraping-with-scrapi

Il utilise une bibliothèque appelée scrAPI au lieu de ScRUBYt, puisqu'il ne pouvait pas faire fonctionner ScRUBYt. scrAPI semble être un peu plus facile peut-être?

J'espère que cela aide un peu, bonne chance dans votre mission! :)

-John

+0

Salut John, merci beaucoup pour vos commentaires! le problème plus que tout semble se situer dans ce que j'essaie de gratter et je ne peux pas sembler obtenir les données dont j'ai besoin en raison de son caché ou alors. J'ai jeté un coup d'oeil à scrAPI mais il semblerait que je risque d'échouer là où j'en ai besoin comme hpricot: s Je trouve aussi qu'il est particulièrement difficile de faire du scrAPI étant extrêmement nouveau à ce niveau. Merci beaucoup pour votre aide, c'est très apprécié! – Erika

1

Dans l'exemple particulier que vous avez donné, les éléments ne sont pas cachés, mais chargés via ajax après chargement de la page. Donc, fondamentalement, ce dont vous avez besoin est un client http qui peut exécuter javascript (navigateur Web?) Pour voir ces adresses et d'autres contenus.

Si vous voulez vraiment automatiser le processus et scrapper les données qui sont obtenues par ajax ou javascript, vous pouvez essayer selenium. Même s'il n'est pas développé à cette fin, il répond à vos besoins.

-1

Il y a un bon script posté au google group. Il semble extraire l'adresse, etc Vous pouvez regarder le code pour le script page.txt.