# scRUBYt! Next Page e fill\_textfield... Un aiutino?

**URL:** <https://www.ruby-forum.com/t/scrubyt-next-page-e-fill-textfield-un-aiutino/187344>\
**Category:** IT\
**Created:** [April 22, 2010, 12:21am UTC](https://www.ruby-forum.com/t/scrubyt-next-page-e-fill-textfield-un-aiutino/187344 "2010-04-22T00:21:12Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![panthe](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/a88e4f/32.png) [@panthe](https://www.ruby-forum.com/u/panthe)\
**Post date:** [April 22, 2010, 12:21am UTC](https://www.ruby-forum.com/t/scrubyt-next-page-e-fill-textfield-un-aiutino/187344/1 "2010-04-22T00:21:12Z")

</div>

Ciao a tutti,  
mi sto avvicinando da poco al mondo di Ruby e sto’ provando a fare  
script di estrapolazione dati. Molto interessante, finora sono riuscito  
a fare qualcosina.  
Ad estrarre un elenco da una pagina, raggrupparlo in un file XML con  
campi separati.

Ho perÃ² alcuni problemi nell’utilizzo di scRUBYt!, non capisco bene come  
usare il comando next\_page e nemmeno come fare a riempire i campi di  
ricerca quando sono piÃ¹ di uno.

Nello specifico vorrei inserire dei valori in piÃ¹ campi e poi fare il  
submit.  
Se perÃ² faccio in questo modo non funziona:

fill\_textfield ‘Nome’, ‘Enry’  
fill\_textfield ‘Cognome’, ‘Shuck’  
submit

Mentre se ne utilizzo solo uno il tutto funziona…

Inoltre non capisco come navigare su piÃ¹ pagine per l’estrazione dei  
dati.  
Il codice HTML che permette lo spostamento fra le varie pagine Ã¨ il  
seguente:

[successiva \>\>](http://www.nominando.it/p-9? "successiva")

Ho provato ad attivare la navigazione nelle pagine con questo codice ma  
non funziona:

next\_page “successiva”, :limit =\> 5

Qualcuno mi saprebbe aiutare??  
Grazie  
Ciao  
Panthe

😉

---

<div class="post-metadata">

**Author:** ![panthe](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/a88e4f/32.png) [@panthe](https://www.ruby-forum.com/u/panthe)\
**Post date:** [April 22, 2010, 3:58pm UTC](https://www.ruby-forum.com/t/scrubyt-next-page-e-fill-textfield-un-aiutino/187344/2 "2010-04-22T15:58:37Z")

</div>

mi è capitato di fare webscraping, ma con scrubyt non sono riuscito a  
farlo funzionare. con nokogiri ([http://nokogiri.org](http://nokogiri.org)) e open-uri è andato  
tutto bene 😉

nel caso di nokogiri, puoi usare xpath o selettori css, decisamente più  
pratico 😛

se hai bisogno di inviare una form, dovresti usare anche net/http per  
l’invio della POST (open-uri supporta solo le GET), in alcuni casi, se  
supportato, puoi costruire una richiesta GET ad-hoc, come avviene con i  
motori di ricerca 🙂

ciao,  
A.

---

<div class="post-metadata">

**Author:** ![panthe](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/a88e4f/32.png) [@panthe](https://www.ruby-forum.com/u/panthe)\
**Post date:** [April 22, 2010, 5:17pm UTC](https://www.ruby-forum.com/t/scrubyt-next-page-e-fill-textfield-un-aiutino/187344/3 "2010-04-22T17:17:33Z")

</div>

Ciao Andrea,  
grazie della risposta…  
Peccato perchÃ© mi pareva potente e sono anche riuscito a farlo  
funzionare…  
Manca completamente assistenza perÃ² il forum non c’Ã¨ e quindi per i  
dubbi ci si deve arrangiare arrabattando materiale qua e la…  
Ho praticamente scritto il 60% di quello che mi serviva e funzionava  
perÃ² mi sa che seguirÃ² il tuo consiglio…

Per caso mi sai suggerire qualche risorsa, tutorial o quant’altro? Sul  
sito ufficiale mi sembra ci sia poca roba…

Grazie  
Ciao  
Panthe

---

<div class="post-metadata">

**Author:** ![panthe](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/a88e4f/32.png) [@panthe](https://www.ruby-forum.com/u/panthe)\
**Post date:** [April 22, 2010, 6:58pm UTC](https://www.ruby-forum.com/t/scrubyt-next-page-e-fill-textfield-un-aiutino/187344/4 "2010-04-22T18:58:24Z")

</div>

On 22/04/2010 17:17, Lucas P. wrote:

> Ciao Andrea,  
> grazie della risposta…  
> Peccato perché mi pareva potente e sono anche riuscito a farlo  
> funzionare…

anche io ho provato diverse librerie, comprese scrubyt, mechanize e  
hpricot, ma alcune sono datate, altre non sono più sviluppate, altre  
ancora non sono riuscito a farle andare 😛

> Manca completamente assistenza però il forum non c’è e quindi per i  
> dubbi ci si deve arrangiare arrabattando materiale qua e la…  
> Ho praticamente scritto il 60% di quello che mi serviva e funzionava  
> però mi sa che seguirò il tuo consiglio…
> 
> Per caso mi sai suggerire qualche risorsa, tutorial o quant’altro? Sul  
> sito ufficiale mi sembra ci sia poca roba…

non ricordo di preciso dove trovai le info, in ogni caso i tutorial di  
nokogiri sono sufficienti per lavorarci, anche perchè principalmente le  
operazioni sono solo “richiedi una pagina” → “fai il parsing del  
risultato”. è un po’ più a basso livello di mechanize e scrubyt, quindi  
devi studiarti la struttura della pagina ed applicare i selettori.

ci sarebbe un railscast su nokogiri

> **[\#190 Screen Scraping with Nokogiri - RailsCasts](http://railscasts.com/episodes/190-screen-scraping-with-nokogiri)**
>
> Short Ruby on Rails screencasts containing tips, tricks and tutorials. Great for both novice and experienced web developers.

se devi interagire parecchio con la pagina (es: submit delle form),  
forse è il caso che provi Mechanize (che sfrutta comunque nokogiri).  
personalmente ho incontrato problemi ad usarlo e a farlo funzionare, nel  
mio caso sono riuscito a fare tutto con nokogiri. forse ad un anno di  
distanza è cambiato qualcosa, considerando che _all’epoca_ usava hpricot.

magari se hai un esempio della pagina da parsare o delle operazioni che  
devi svolgere, posso provare ad esserti più utile 😉

ciao,  
A.

---

<div class="post-metadata">

**Author:** ![panthe](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/a88e4f/32.png) [@panthe](https://www.ruby-forum.com/u/panthe)\
**Post date:** [April 23, 2010, 11:17am UTC](https://www.ruby-forum.com/t/scrubyt-next-page-e-fill-textfield-un-aiutino/187344/5 "2010-04-23T11:17:15Z")

</div>

ciao Panthe,

ti scrivo un po’ di corsa, il mio lavoro si basava proprio su  
paginegialle 😃

quindi in caso ti mando il mio codice (appena lo ritrovo :P) che  
funziona abbastanza bene, basato solo su nokogiri. nel mio caso generavo  
un CSV importabile su mysql 😉

quanto alla ricerca, su paginegialle puoi generare la richiesta con una  
GET opportunamente formattata, senza sfruttare la form. quanto alla  
paginazione, ho sfruttato le espressioni xpath sul link della “pagina  
successiva” 😛

un saluto,  
A.

---

<div class="post-metadata">

**Author:** ![panthe](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/a88e4f/32.png) [@panthe](https://www.ruby-forum.com/u/panthe)\
**Post date:** [April 23, 2010, 12:01am UTC](https://www.ruby-forum.com/t/scrubyt-next-page-e-fill-textfield-un-aiutino/187344/6 "2010-04-23T00:01:35Z")

</div>

Ciao Andrea,  
cmq a me scRUBYt! funziona il problema Ã¨ che non capisco alcune cose e  
la documentazione scarseggia…  
Mi servirebbero alcuni dati presenti sulle pagine gialle.  
Questo codice mi estrapola correttamente i dati della prima pagina della  
categoria abbigliamento.  
Quello che non riesco a fare Ã¨:

1. compilare sia il campo cosa che il campo dove perchÃ© mi servirebbero  
solo i dati di alcune cittÃ e categoria specifica

2. non riesco a navigare sulla pagina successiva

require ‘rubygems’  
require ‘scrubyt’

paginegialle\_data = Scrubyt::Extractor.define do

#Perform the action(s)  
fetch ‘[http://paginegialle.it/](http://paginegialle.it/)’  
fill\_textfield ‘cosa’, ‘abbigliamento’

submit

#Construct the wrapper  
azienda\_info ‘//div[@class=“listing-client-line-pg clearfix”]’ do  
azienda “//h3[@class=‘org orange’]”  
indirizzo “//p[@class=‘street-address’]”  
tel “//p[@class=‘tel’]”  
categoria “//p[@class=‘client-category’]”  
website “//a[@class=‘lnkwww’]/@href”  
scheda “//a[@class=‘scheda’]/@href”  
end

next\_page “prossima”, :limit =\> 5

end

puts paginegialle\_data.to\_xml

Siccome non ho mai usato ruby per me Ã¨ tutto nuovo e non so bene come  
muovermi…  
Se hai tempo di darmi qualche dritta 😉  
Cmq ti ringrazio per la cortesia!!!  
Ciaooo

---

<div class="post-metadata">

**Author:** ![panthe](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/a88e4f/32.png) [@panthe](https://www.ruby-forum.com/u/panthe)\
**Post date:** [April 23, 2010, 2:29pm UTC](https://www.ruby-forum.com/t/scrubyt-next-page-e-fill-textfield-un-aiutino/187344/7 "2010-04-23T14:29:14Z")

</div>

ok ti ho mandato una mail con lo script allegato 😉

ciao,  
A.

---

<div class="post-metadata">

**Author:** ![panthe](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/a88e4f/32.png) [@panthe](https://www.ruby-forum.com/u/panthe)\
**Post date:** [April 23, 2010, 11:47am UTC](https://www.ruby-forum.com/t/scrubyt-next-page-e-fill-textfield-un-aiutino/187344/8 "2010-04-23T11:47:11Z")

</div>

Guarda che coincidenza!!!  
Bene, se tu riuscissi mi faresti ovviamente un grandissimo piacere.

In passato avevo giÃ scritto codice di grabbing per PGOL ma era in VB e,  
nonostante funzionasse benissimo e mi ha consentito di crearmi un  
archivio notevole, Ã¨ molto lento.

Quindi per aggiornare i dati dell’archivio volevo utilizzare un sistema  
moderno appunto per velocizzare il tutto ed anche imparare qualche cosa  
di nuovo.

Intanto ti ringrazio e ti auguro un buon week end.  
Ciaoo  
Luca
