Portál AbcLinuxu, 25. dubna 2024 18:47


Dotaz: Curl: auto submit button

25.9.2011 12:32 lukas
Curl: auto submit button
Přečteno: 187×
Odpovědět | Admin
Ahojte, viete niekto pouzitim curl alebo elinks vycitat udaje z tejto stranky?
http://www.isot.sk/portal/Pages/PublishedInformation/DailyMCC/Default.aspx?lang=sk
Ide mi o tie udaje a neviem ako to zautomatizovat, aby som nemusel chodit na tu straku a klikat na tlacitko "Zobraziť".
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

25.9.2011 14:05 chrono
Rozbalit Rozbalit vše Re: Curl: auto submit button
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nebolo by možné priamo sťahovať TXT/XML súbor? To mi pripadá jednoduchšie, ako sa pokúšať odoslať ten formulár, každopádne takéto asp, .net.. formuláre by mal zvládať napr. scrapy?

Napr. ten link pre txt súbor vyzerá takto:
http://www.isot.sk/portal/Pages/PublishedInformation/DailyMCC/?lang=sk&SF1=Period&SD1=Ascending&FF1=Date&FO1=Equal&FV1=634525920000000000&FT1=dt&pageid=60&export=txt
Na prvý pohľad sa tam mení len parameter FV1 (je to dátum).

V python by sa ten dátum mohol dať (pre dnešný deň, ale nie je problém to prerobiť na zajtrajší, aby to fungovalo rovnako, ako tá stránka), vypočítať nejako takto:
import datetime
print "%i" % ((datetime.date.today() - datetime.date(1, 1, 1)).total_seconds() * 10000000)
Ak sa niekto vyzná v takých aplikáciách, možno by vedel, či je možné zmeniť FT1 na niečo iné, tak aby sa tam dal použiť aj iný formát dátumu, každopádne ja to nepotrebujem, takže ja to zisťovať nebudem. :)
xkucf03 avatar 25.9.2011 14:20 xkucf03 | skóre: 49 | blog: xkucf03
Rozbalit Rozbalit vše Re: Curl: auto submit button
Odpovědět | | Sbalit | Link | Blokovat | Admin

Zkusil jsem se na to podívat FireBugem a zjistit, co se posílá po kliknutí na tlačítko, ale je to takový ten typický ASP/.NET ksind – pošle se HTTP POST velký asi 25 KB, který obsahuje __VIEWSTATE typu:

/wEPDwUKMjA2ODE5ODgyNg9kFgJmD2QWBAIBD2QWBAILDxYCHgRUZXh0BYsBPGxpbmsgcmVsPSJhbHRlcm 5hdGUiIHR5cGU9ImFwcGxpY2F0aW9uL3Jzcyt4bWwiIHRpdGxlPSJOb3RpZmlrw6FjaWUiIGhyZWY9Imh0dHA6Ly9 3d3cuaXNvdC5zay9wb3J0YWwvU2VydmljZXMvUlNTL0RlZmF1bHQuYXNweD9sYW5nPXNrIiAvPmQCDA8WAh8ABSg8 IS0tIFdlYlNpdGUgdmVyc2lvbjogNC4zMi40MjgwLjI2NTQ1LS0+ZAIDD2QWEAIFD2QWAmYPFgIfAAWhATxkaXYga WQ9ImhlYWRlci1pbmZvIj48cD5Ob3bDvSBKYXZhIGFwcGxldC48YSBocmVmPSJodHRwczovL3d3dy5pc290LnNrL3 BvcnRhbC9QYWdlcy9JbmZvcm1hdGlvbi9Ob3RpZmljYXRpb24vVmlldy5hc3B4P2xhbmc9c2smaWQ9Nzg5MDMzMiI +dmlhYy4uLjwvYT48L3A+PC9kaXY+ZAIHD2QWAmYPZBYCAgEPZBYIAgEPDxYCHgtOYXZpZ2F0ZVVybAUWfi9EZWZh dWx0LmFzcHg…

a další parametry. Když se podíváš na zdroják té HTML stránky, tahle hodnota je tam jako skryté formulářové pole.

Řešení jsou dva kroky:

  1. Poslat HTTP GET na stránku Default.aspx?lang=sk a z ní si vyzobat (regulárním výrazem) potřebné hodnoty.
  2. Postal HTTP POST na Default.aspx?lang=sk s těmi parametry, které jsi vyčetl v prvním kroku.
Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.