Newsgroup: it.comp.os.linux.software
Titolo: script scandaglia eBay

Salve,
vorrei automatizzare delle ricerche da fare su alcuni siti tipo ebay o
secondamano. In pratica, inverece di accedere al sito e fare la ricerca
"Commodore Plus 4", vorrei che uno script la facesse per me,
periodicamente. Vorrei inoltre stabilire dei criteri di ricerca; per
esempio se argomento = "commodore plus 4" e localita' = "USA", non mi
segnala niente. in caso i criteri venissero soddisfatti, mi manda una
bella mail con tutti i dati.
La mia domanda e': esiste un software che fa cose del genere?
In realta' vorrei scrivermi lo script da solo, ma non saprei da dove
iniziare. Insomma, come interagisco con un sito web facendo ricerche
all'interno tramite script?? non saprei neache che parole chiave
inserire in google.
Spero di essere stato chiaro e ringrazio per eventuali link, spunti,
idee.
mirko
 
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG


devi studiare l'http + l'html + il linguaggio con cui vuoi scrivere lo script
(bash, perl, python, ruby, ...): tu fai una richiesta html al sito, che ti da
i dati richiesti (o l'eventuale errore da gestire) quindi parsi il malloppone
ricevuto per estrarne i dati che ti servono
o meglio...
potresti saltare la programmazione della parte che chiede i dati usando cose
come wget o lynx che ti scaricano le pagine che gli chiedi
secondo me potresti affrontare i problemi uno alla volta:
fai un 'prova a mano' (quali url devi usare per ottenere le pagine richieste),
quindi prova a usare gli stessi url con wget e soci e vedi se ottieni le stesse
pagine della 'prova a mano' precedente; quando hai individuato il modo corretto
di chiedere quello che vuoi ricevere, passi alla fase successiva: estrarre i
dati utili dal 'malloppone' (grep, perl, altro) 
ho fornito i miei 2 centesimi alla discussione :-)
Ciao,
Giuseppe

 il malloppone ricevuto per estrarne i dati che ti servono
Fa prima a interfacciarsi via SOAP/REST/quel che è, se il sito espone
un'interfaccia del genere (Ebay sicuramente lo farà, Secondamano non
saprei), nel linguaggio di programmazione preferito... anche se
probabilmente per ebay esisterà già un programma che fa sta cosa.
-- 
Vide
echo '[q]sa[ln0=aln256%Pln256/snlbx]sb3135071790101768542287578439snlbxq'|dc

 probabilmente per ebay esisterà già un programma che fa sta cosa.
beh, va a gusti immagino :-)
con qualche rudimento di bash e la lettura delle pagine di man, dove occorra,
l'op potrebbe in 10-15 minuti -di cui la maggior parte passata a trovare il grep
giusto agli url che il sito fornisce alle richieste-, trovare qualcosa
di simile, o sperabilmente migliore, a quest'esempio:
(solo per ebay, per dare un'idea dello schema di funzionamento della procedura principale)
=============================================================================
#!/bin/sh
PAGINA_INIZIALE="
http://search.ebay.com/search/search.dll?cgiurl=http%3A%2F%2Fcgi.ebay.com%2Fws%2F&fkr=1&from=R8&satitle=%22Commodore+Plus+4%22&category0=&submitSearch=Search
"
rm -f OUT.ebay OFFERTE.ebay 2> /dev/null
lynx -dump -listonly "${PAGINA_INIZIALE}" | grep -E -o -u "
http://cgi.ebay.com/[
^\"]*ViewItem" | uniq | grep -i commodore > OUT.ebay
for offerta in $(cat OUT.ebay)
do
  [ "$(lynx -dump "${offerta}" | grep -c "Item location:.*United States")"x == "0"x ] && echo "$offerta" >> OFFERTE.ebay
done
[ -s OFFERTE.ebay ] &&  cat OFFERTE.ebay | mailx -s " Offerte Ebay su c plus 4"  
ape...@tiscali.it
rm -f OUT.ebay OFFERTE.ebay 2> /dev/null
=============================================================================
Ciao,
Giuseppe

 
ciao Giuseppe,
grazie per l'esempio che hai postato!
purtroppo in questi giorni sono sommerso dal lavoro e l'unica cosa che
ho potuto fare e copy/paste del codice ed esecuzione.
mi da' errore sulla riga 7, credo sia una pipe che non va. appena ho una
serata libero mi studio bene il codice!



ok, se poi nel caso ti serve un aiuto... posta anche il messaggio d'errore :-)
Ciao,
Giuseppe

> ok, se poi nel caso ti serve un aiuto... posta anche il messaggio d'errore :-)
ciao Giuseppe, 
purtroppo sono ancora in alto mare col lavoro e ho avuto tempo = 0 per
fare le mie cose.
Intato ti posto l'errore, che recita:
line 7: syntax error near unexpected token `|'
(e' la linea di 'lynx')



l'ho appena riprovato (versione vecchia e nuova) e sembra funzionare; un paio di
aggiornamenti per quando ci rimetterai mano: 
PAGINA_INIZIALE="
http://search.ebay.com/search/search.dll?from=R40&satitle=Commodore+Plus+4
" mi da
risultati più numerosi della vecchia variabile
in grep l'opzione -u è, in questo caso, inutile: sui sistemi linux è come non metterla e non fa danni
(era un 'contatto' di memoria con l'opzione -u di sort che esegue un filtraggio a la uniq)
per l'errore con
lynx -dump -listonly "${PAGINA_INIZIALE}" | grep -E -o -u "
http://cgi.ebay.com/[
^\"]*ViewItem" | uniq | grep -i commodore > OUT.ebay
forse la causa è il diverso interprete degli script usato; io qui ho il 'GNU bash, version 3.2.5(2)-release',
o forse lo script si è contaminato nel copia/incolla
comunque per il debug ti consiglierei di partire dalla testa della pipe e
aggiungere pezzi man mano che l'esecuzione non produce errori
A
A | B 
...
...divago un po' :-)
se usato in locale potrebbe essere comodo non generare una mail ma una pagina
html su cui puntare il browser; così si può eliminare il passaggio relativo al
programma di mail
Ciao,
Giuseppe