Sziasztok!
Lenne egy probléma, amire kéne írnom egy scriptet. Jó sok weboldalnak kellene átadnom ugyan az a adatot. A form method post, ami még önmagában nem is lenne baj, az adatokat át is tudom adni, viszont van egy kis gondom vele:
input type="Submit" value="Apply" align="MIDDLE"
A submit gombnak nincs neve. Ez esetben hogyan hivatkozok rá curl-el? Meg lehet oldani? Ha nem, akkor valami más tipp? Google nem sok sikerrel járt.
- 34024 megtekintés
Hozzászólások
lehet, hogy hülyeség, de esetleg a form nevét használni?
pl javascriptben is a form-nak küldjük a submit-utasítást, csak ebből gondoltam, hátha úgy megeszi.
sajnos fogalmam sincs, hogy a curl hogyan hivatkozik arra a submitra aminek se neve, se id-je.
----------------
...jönnek a gépek, a szemükben nincs harag...
- A hozzászóláshoz be kell jelentkezni
Elvileg így adom át az adatokat:
curl -d "inputname1=value1&inputname2=value2&submitname=submitvalue" url
Nem tudom, ez hogyan hozható össze a form nevével. Esetleg "formname=submit"? Ilyesmire gondolsz?
- A hozzászóláshoz be kell jelentkezni
igen, arra gondoltam volna, bocs ha nem volt érthető. :)
----------------
...jönnek a gépek, a szemükben nincs harag...
- A hozzászóláshoz be kell jelentkezni
Ez sajnos nem jött be. :(
- A hozzászóláshoz be kell jelentkezni
ha nincs neve, akkor nem is kerül postolásra a benne lévő adat, vagyis nem kell rá hivatkoznod. (Gondolom ez magyarázza hogy nem találtál a google-ben sem semmit:))
- A hozzászóláshoz be kell jelentkezni
Rendben. De akkor hogyan submitolom a formot? Tehát eddig vagyok meg:
curl -d "inputname1=value1&inputname2=value2" url
Hogyan tovább? Ettől még nem lesz submitolva, ha jól sejtem.
(Ámbár lehet, hogy rossz oldalról közelítem meg dolgot.)
- A hozzászóláshoz be kell jelentkezni
de, ettől már pont submittolva lesz.
A submit gomb annyit csinál, amit te, berakja az adatokat a post-ba, majd átdobja a szervernek.
- A hozzászóláshoz be kell jelentkezni
Sose dolgoztam curl-al, de ez sejtésem szerint már az az adat, ami a gombnyomás után keletkezik, tehát a gombnyomással már nem kell foglalkoznod.
- A hozzászóláshoz be kell jelentkezni
Csak simán a két adatot elküldve nem igazán megy.
- A hozzászóláshoz be kell jelentkezni
ebben az esetben ha a form ACTION-ját célzod meg a curl-el, és a megfelelő értékekkel, akkor az maga lesz a submit.
----------------
...jönnek a gépek, a szemükben nincs harag...
- A hozzászóláshoz be kell jelentkezni
A form action-t nem engedi közvetlenül meghívni, azt mondja, nincs hozzáférésem.
- A hozzászóláshoz be kell jelentkezni
Ez valoszinuleg azert van, mert login koteles a form maga is. El kell kuldened azt a sutit, amit a loginkor kapsz.
Tehat, eloszor curl-lal bejelentkezel, a kapot sutit lemented, majd elkuldod a formodat, ugy, hogy a sutit is mellerakod. A curl manjaban eleg sok info van a sutikrol, olvasd el.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni
Ha úgyis sok urlnek kell átadnod, nem volna elég ilyesmi:
a sok url -> sok_url.lst
wget -q -O wget.log --post-data='inputname1=value1&inputname2=value2' -i sok_url.lst
?
- A hozzászóláshoz be kell jelentkezni
Ez tetszene, de sajnos ez sem megy. :(
- A hozzászóláshoz be kell jelentkezni
Elvileg jol csinalod.
Ha megsem szereti az adott oldal, akkor probalkozhatsz a user-agent atirasaval (nehany oldal nem szereti, ha szamara ismeretlen a bongeszo), a referrer beallitasaval, vagy lehet, hogy cookie-t engedelyezve elobb meg kell latogatnod az oldalt egy korabbi curl hivassal.
Nehany oldal (ETR mondjuk) szereti, ha csak egyetlen szalon cseszteted, es minden egyes oldalletoltesnel general valami sorszamot, random id-t, es kivag, ha nem azt kapja.
Meg van olyan is, ahol a hasznalt js-t is ki kell valtanod valamilyen szinten.
Amugy ha a visszajovo adatot parse-olnod is kell, akkor jobban jarsz, ha eleve valami komolyabb scriptnyelvben irod, a bash keves lesz.
Mennyire titkos a feladat? (konkret url pl. publikus?)
--
I never let my children watch big band performances on TV. Too much sax and violins. - sickipedia
- A hozzászóláshoz be kell jelentkezni
Sajnos az url-t nem tudom kirakni, mert belső hálón van. De itt van az oldal forrása, hátha segít:
http://pastebin.com/nu0uHuvs
- A hozzászóláshoz be kell jelentkezni
Ha firefox-ot használsz keress rá és telepítsd fel a Tamper Data nevü Add-ont.
Indítsd el, és nézd meg, hogy normális esetben mit küldd el a form.
Majdnem egy az egyben meg tudod adni azt az adatot curl-nak.
Utána már max csak a szükséges form adatokat kell módosítanod.
- A hozzászóláshoz be kell jelentkezni
Jól hangzik, kipróbálom. Köszönöm.
- A hozzászóláshoz be kell jelentkezni
Firebug is elarulja a net fulon. Nagyon haszos kiegeszito.
--
I never let my children watch big band performances on TV. Too much sax and violins. - sickipedia
- A hozzászóláshoz be kell jelentkezni
Ezt kapom az addontól:
Host=http://10.26.176.115
User-Agent=Mozilla/5.0 (Windows; U; Windows NT 5.1; hu; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13 ( .NET CLR 3.5.30729; .NET4.0C)
Accept=text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language=hu-hu,hu;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding=gzip,deflate
Accept-Charset=ISO-8859-2,utf-8;q=0.7,*;q=0.7
Keep-Alive=115
Connection=keep-alive
Referer=http://10.26.176.115/I.htm
Content-Type=application/x-www-form-urlencoded
Content-Length=39
POSTDATA=mq1=135000000&md1=3
Attól tartok, ettől sajnos nem sokkal lettem okosabb. Én is ezt a két adatot próbálom elküldeni. Bár lehet, hogy valamit nem veszek észre benne. Simán kinézem magamból, hogy csak bénázok, és nem látom a lényeget. :)
- A hozzászóláshoz be kell jelentkezni
valami ilyesmivel próbálkozol?
curl -s -i --data "mq1=135000000&md1=3" -e -o out.txt http://10.26.176.115/I.htm
Már régen csináltam hasonlót, de valahogy így ment annó...
- A hozzászóláshoz be kell jelentkezni
Változatlan a helyzet. Az egyetlen dolog amit visszakapok:
curl: (52) Empty reply from server
Böngészőn keresztöl 200-at kapok vissza, vagyis OK.
- A hozzászóláshoz be kell jelentkezni
Az OK.
A curl parametereihez rakd oda a "-D - " parost.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni
Nnna. Köszönöm mindenkinek a segítséget, megszületett a megoldás. A megoldás ott volt, amire már utaltatok: a form action-ben.
Simán hivatkozva rá kivágott "Not Allow Access" hibával.
Azonban ha úgy hívom meg a form action-t, hogy -e kapcsolóval (curl) megadom a referert, akkor máris működik, hisz' azt hiszi, hogy a form hivatkozik rá. Így alakul tehát a végeredmény:
curl -i -D - --data "mq1=535000000&md1=3" -e http://10.26.176.115/I.htm http://10.26.176.115/goform/I
Még egyszer köszönöm mindenkinek.
- A hozzászóláshoz be kell jelentkezni