<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>TUX-ES.com &#187; Laboratorio</title>
	<atom:link href="http://www.tux-es.com/project1/category/laboratorio/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.tux-es.com/project1</link>
	<description></description>
	<lastBuildDate>Wed, 26 May 2010 14:53:41 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>es</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Script: consulta de saldo de tarjeta restaurant</title>
		<link>http://www.tux-es.com/project1/2009/11/script-consulta-de-saldo-de-tarjeta-restaurant/</link>
		<comments>http://www.tux-es.com/project1/2009/11/script-consulta-de-saldo-de-tarjeta-restaurant/#comments</comments>
		<pubDate>Tue, 17 Nov 2009 09:49:58 +0000</pubDate>
		<dc:creator>macuriel</dc:creator>
				<category><![CDATA[Laboratorio]]></category>
		<category><![CDATA[curl]]></category>
		<category><![CDATA[sed]]></category>
		<category><![CDATA[shell script]]></category>

		<guid isPermaLink="false">http://www.tux-es.com/project1/?p=518</guid>
		<description><![CDATA[Hoy inaguramos la sección de Laboratorio incluyendo el primer script de automatización de &#8220;tareas web&#8221;.
Este script consulta una página de Gestión de Tarjeta Restaurant, y consulta el saldo para enviar un email al usuario elegido. Parece un simpleza, pero podemos aprender varias cosas dado que es una buena plantilla para hacer nuestros scripts propios.

#!/bin/bash

export AGENT="Mozilla/5.0 [...]]]></description>
			<content:encoded><![CDATA[<p>Hoy inaguramos la sección de Laboratorio incluyendo el primer script de automatización de &#8220;tareas web&#8221;.</p>
<p>Este script consulta una página de Gestión de Tarjeta Restaurant, y consulta el saldo para enviar un email al usuario elegido. Parece un simpleza, pero podemos aprender varias cosas dado que es una buena plantilla para hacer nuestros scripts propios.</p>
<pre type="syntaxhighlighter" class="brush: js">
#!/bin/bash

export AGENT="Mozilla/5.0 (X11; U; Linux i686; es-ES; rv:1.8) Gecko/20051111 Firefox/1.5"

export LOGINURL="https://ticketrestaurant.geanetondemand.com/TRC/index.html"
export POSTLOGIN="https://ticketrestaurant.geanetondemand.com/TRC/checkUserLogin.php"
export POSTDATA="user=usuario&amp;passwd=password&amp;type=trc"

curl -s -A '${AGENT}' -d "${POSTDATA}" -c ticketrestaurant.cookie -o login1.out -e ${LOGINURL} ${POSTLOGIN}
curl -s -A '${AGENT}' -b ticketrestaurant.cookie -o login2.out -e ${POSTLOGIN} https://ticketrestaurant.geanetondemand.com/TRC/home.html
curl -s -A '${AGENT}' -b ticketrestaurant.cookie -o login3.out -e https://ticketrestaurant.geanetondemand.com/TRC/home.html https://ticketrestaurant.geanetondemand.com/TRC/consulta_tarjeta.html
curl -s -A '${AGENT}' -b ticketrestaurant.cookie -o login4.out -e https://ticketrestaurant.geanetondemand.com/TRC/consulta_tarjeta.html https://ticketrestaurant.geanetondemand.com/TRC/logout.html
SALDO=`cat login3.out | sed -n '/SALDO/p' | sed 's/.* \([0-9]*,[0-9]*\) .*/\1/g'`
clear
MAIL_BODY=`echo "Su saldo Sr. Señor: ${SALDO} euros" > /tmp/mail.body`
mail email@domain.com -s "Saldo Tarjeta Restaurant: ${SALDO} euros" < /dev/null</pre>
<p>Sigue leyendo para conocer la explicación</p>
<p><span id="more-518"></span></p>
<p style="text-align: left;">La página en cuestión puede verse a través del enlace de la imagen:</p>
<p style="text-align: center;"><a rel="rokbox[65% 80%]"  href="https://ticketrestaurant.geanetondemand.com/TRC/index.html"><img class="rokbox-thumb" src="http://www.tux-es.com/project1/wp-content/uploads/2009/11/www.jpg" alt="" /></a></p>
<p style="text-align: left;">Antes de nada, comentaremos las herramientas que hemos utilizado para elaborarlo.</p>
<ul class="special-14">
<li><a href="http://www.mozilla-europe.org/es/firefox/" target="_blank">Firefox 3.0</a></li>
<li><a href="http://livehttpheaders.mozdev.org/" target="_blank">Addon de Firefox</a></li>
</ul>
<p style="text-align: left;">Estas herramientas nos permiten identificar los elementos iniciales: url de inicio, url de login, campos de formulario y dirección del POST. Es importante obtener todos los campos de tipo hidden para lanzar el POST.</p>
<p style="text-align: left;">Con la variable AGENT simulamos un navegador de usuario, aquí dejo otros ejemplos válidos:</p>
<pre>Mozilla/3.0 (compatible; HandHTTP 1.1)
Mozilla/4.0 (compatible; MSIE 4.01; Windows NT Windows CE)
Mozilla/2.0 (compatible; MSIE 3.02; Windows CE; 240x320)
Mozilla/1.22 (compatible; MMEF20; Cellphone; Sony CMD-Z5)
Nokia-Communicator-WWW-Browser/2.0 (Geos 3.0 Nokia-9000i)
Nokia-Communicator-WWW-Browser/3.0 (Geos 3.0 Nokia-9110)
Mozilla/4.51 (compatible; Opera 3.62; EPOC; 640x240)
Palmscape/PR5 (PalmPilot Pro; I)
Mozilla/5.001 (windows; U; NT4.0; en-us) Gecko/25250101
Mozilla/5.001 (Macintosh; N; PPC; ja) Gecko/25250101 MegaCorpBrowser/1.0 (MegaCorp, Inc.)
Mozilla/9.876 (X11; U; Linux 2.2.12-20 i686, en) Gecko/25250101 Netscape/5.432b1 (C-MindSpring)
TinyBrowser/2.0 (TinyBrowser Comment) Gecko/20201231
Mozilla/5.0 (compatible; Konqueror/3.4; Linux 2.6.10-5-386; X11; i686; es, en_US) KHTML/3.4.0 (like Gecko)
Microsoft Internet Explorer/4.0b1 (Windows 95)
Mozilla/1.22 (compatible; MSIE 1.5; Windows NT)
Mozilla/1.22 (compatible; MSIE 2.0; Windows 95)
Mozilla/2.0 (compatible; MSIE 3.01; Windows 98)
Mozilla/4.0 (compatible; MSIE 5.0; SunOS 5.9 sun4u; X11)
Mozilla/4.0 (compatible; MSIE 5.23; Mac_PowerPC)
Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)
Mozilla/4.0 (compatible; MSIE 6.0; MSN 2.5; Windows 98)
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322)
Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 5.1)
Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 6.0)
Mozilla/1.1 (compatible; MSPIE 2.0; Windows CE)
Mozilla/4.0 (compatible; MSIE 4.01; Windows CE; PPC; 240x320)
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Avant Browser [avantbrowser.com]; iOpus-I-M; QXW03416; .NET CLR 1.1.4322)
Mozilla/5.0 (compatible; Konqueror/3.1-rc3; i686 Linux; 20020515)
Mozilla/5.0 (compatible; Konqueror/3.1; Linux 2.4.22-10mdk; X11; i686; fr, fr_FR)
Mozilla/5.0 (Windows; U; Windows CE 4.21; rv:1.8b4) Gecko/20050720 Minimo/0.007
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.8) Gecko/20050511
Mozilla/5.0 (X11; U; Linux i686; cs-CZ; rv:1.7.12) Gecko/20050929
Mozilla/5.0 (Windows; U; Windows NT 5.1; nl-NL; rv:1.7.5) Gecko/20041202 Firefox/1.0
Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.7.6) Gecko/20050512 Firefox
Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.7.8) Gecko/20050609 Firefox/1.0.4
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.10) Gecko/20050716 Firefox/1.0.6
Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-GB; rv:1.7.10) Gecko/20050717 Firefox/1.0.6
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.12) Gecko/20050915 Firefox/1.0.7
Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.7.12) Gecko/20050915 Firefox/1.0.7
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8b4) Gecko/20050908 Firefox/1.4
Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.8b4) Gecko/20050908 Firefox/1.4
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9a1) Gecko/20051019 SeaMonkey/1.1a
Mozilla/3.0 (X11; I; SunOS 5.4 sun4m)
Mozilla/4.61 (Macintosh; I; PPC)
Mozilla/4.61 [en] (OS/2; U)
Mozilla/4.7C-CCK-MCD {C-UDP; EBM-APPLE} (Macintosh; I; PPC)
Mozilla/4.8 [en] (Windows NT 5.0; U)
Mozilla/5.0 (X11; U; SunOS sun4u; en-US; rv:1.0.1) Gecko/20020920 Netscape/7.0
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 (ax)
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20050519 Netscape/8.0.1
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50215) Netscape/8.0.1
Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-US) AppleWebKit/125.4 (KHTML, like Gecko, Safari) OmniWeb/v563.51
Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-US) AppleWebKit/125.4 (KHTML, like Gecko, Safari) OmniWeb/v563.57
Mozilla/4.0 (compatible; MSIE 5.0; Windows 2000) Opera 6.03 [en]
Nokia9500/7.23 (Windows 98; U) [en]
Opera/8.00 (Windows NT 5.1; U; en)
Opera/8.0 (X11; Linux i686; U; cs)
Opera/8.02 (Windows NT 5.1; U; en)
Opera/8.50 (Windows NT 5.1; U; en)
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 8.50
Mozilla/5.0 (Windows NT 5.1; U; en) Opera 8.50
Opera/8.5 (X11; Linux i686; U; cs)
Opera/9.0 (Windows NT 5.0; U; en)
Mozilla/4.0 (PSP (PlayStation Portable); 2.00)
Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/124 (KHTML, like Gecko) Safari/125
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2)
Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-us) AppleWebKit/312.1 (KHTML, like Gecko) Safari/312
Mozilla/5.0 (Macintosh; U; PPC Mac OS X; it-it) AppleWebKit/412 (KHTML, like Gecko) Safari/412
ELinks (0.4pre5; Linux 2.4.27 i686; 80x25)
Links (0.99pre14; CYGWIN_NT-5.0 1.5.16(0.128/4/2) i686; 80x25)
Links (2.1pre17; Linux 2.6.11-gentoo-r8 i686; 80x24)
Lynx/2.8.4rel.1 libwww-FM/2.14
Mozilla/4.7 (compatible; OffByOne; Windows 2000</pre>
<p style="text-align: left;">En sucesivos script iremos explicando el resto de comandos.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tux-es.com/project1/2009/11/script-consulta-de-saldo-de-tarjeta-restaurant/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
