|
232
|
Programación / Desarrollo Web / Re: ¿HTML o PHP?
|
en: 22 Febrero 2013, 15:34 pm
|
¿Qué método se utiliza ahora? HTML, PHP O javascript... HTML -> paginas estaticas, esto son paginas que no cambian, siempre estaran tal cual tu las codees. PHP y javascript -> paginas dinamicas. tu codearas la web, y segun el usuario que entre, o segun la hora a la que entre, o segun donde clickee, etc. la web se mostrara de una manera o de otra. la diferencia entre estos 2? PHP corre del lado del servidor, por lo que el codigo no es visible desde el navegador, y puedes usarlo para conectar con tus bases de datos (mysql, postgrees, etc) por si quieres hacer un sistema de usuarios, o si tienes una web de venta y tienes que tener registrados todos tus productos, entre muchas otras cosas. javascript corre del lado del navegador, esto es que se ejecuta en el ordenador de la persona que visite tu web, por lo que el codigo si es visible desde el navegador, y puedes usarlo para hacer efectos de display en tu web, para personalizar la web para cada usuario (ejemplo tipico: mostrar la hora en la web en funcion del pais desde donde te visiten), etc. conclusion?? si quieres hacer una web que hoy en dia valga la pena, aprende HTML+PHP+javascript. si quieres hacerla solo con HTML pues por poder puedes hacerla, pero ya has visto que entonces estaras bastante limitado en cuanto a recursos disponibles, ademas de que la web no sera muy vistosa. si quieres ahorrarte un lenguaje, entonces yo te diria que dejaras javascript de lado hasta mas adelante y te centraras en HTML+PHP. un saludo!
|
|
|
233
|
Programación / Scripting / Re: (Python) TypeError: can't multiply sequence by non-int of type 'str'
|
en: 15 Febrero 2013, 21:45 pm
|
Si la entrada en el input es un número, ¿por qué hay que convertirlo en número? lo que tu aqui llamas 'numero' no es mas que una cadena compuesta exclusivamente de caracteres '0123456789' (mas el '.' si es un numero real). luego si tu en el input sabes que se deben introducir solo numeros, debes convertir la cadena a un entero o real para poder operar con ese numero. ¿Por qué retorna un string? pues simplemente porque la funcion esta hecha asi, y supongo que es porque es el caso mas general. luego tu puedes hacerte una funcion tuya que sea solo para leer numeros, en la que no tendras mas que un input y luego deberas recorrer la cadena que retorna mirando que todos los caracteres sean numeros y que haya como maximo 1 punto. despues de eso, solo te faltaria convertirlo a int o float dependiendo de si hay un punto o no, y retornar el numero resultante. igual ya viene 'de serie' en python, pero no estoy muy metido en este lenguaje. un saludo!
|
|
|
234
|
Programación / PHP / Re: [SOURCE] HideMyAss Proxy Scrapper
|
en: 7 Febrero 2013, 14:50 pm
|
@ drvy | BSM
gracias por la recomendacion, aunque de momento mientras funcione se quedara asi ya que ahora estoy liado con otras cosas xD ademas igual en 3 o 4 meses vuelven a cambiar el formato de hidemyass y entonces ya aprovecharia para cambiarlo todo.
@ EFEX
no estaria mal, pero bueno tampoco creo que sea necesario. si fuera mas codigo aun, pero apenas son 150 lineas o por ahi. me conformo con esperar que si alguien lo comparte ponga un enlace a esta web jeje
gracias a los 2 por los comentarios! un saludo!
|
|
|
235
|
Programación / PHP / [SOURCE] HideMyAss Proxy Scrapper
|
en: 6 Febrero 2013, 16:00 pm
|
buenas foro, hace unos dias pedi consejo acerca de hacer web scraping a una web y para ello necesitaba de varios proxies. pues bien, me gustaria compartir este codigo que supongo que a algunos les ayudara. es un script en php que recopila la lista de proxies de la web de hidemyass. esta probado y funciona perfectamente (al menos hace 2 semanas, si no han cambiado el formato de hidemyass deberia funcionar). la lista la carga en una base de datos de mysql, en la que crea una tabla de nombre el dia y mes actual, con los siguientes campos: id, address (ip:port), type (http, https, socks4/5) y used (la cantidad de veces que se ha usado). ademas, actualiza un fichero de texto con el nombre de la tabla actualizada. tan solo habria que rellenar los datos del apartado 'DATA' y correrlo. el codigo es el siguiente: <?php //// includes include('./simple_html_dom.php'); /************ DATA ************/ $num_pages=10; // 50 proxies/page $speed_limit=50; // min speed to take proxy $conn_limit=50; // min connection time to take proxy $sleep_time=3; // seconds to wait between different pages // data for mysql $server='localhost'; $user='foo'; $pass='bar'; $db_name='example'; /************ MAIN ************/ for ($i=1; $i<=$num_pages; $i++) { $html=file_get_html('http://www.hidemyass.com/proxy-list/'.$i); foreach ($html->find('tr') as $tr) { if (isset($tr->id)) continue; $speed=get_proxy_specs($tr->find('td', 4)); $connection_time=get_proxy_specs($tr->find('td', 5)); if ($speed > $speed_limit && $connection_time > $conn_limit) { $proxy_address[]=get_proxy_address($tr); $proxy_type[]=$tr->find('td', 6)->plaintext; } } } //// save data in the database $name='proxies_'.date('d_m'); // name of the new daily table is 'proxies_$d_$m', where $d=day and $m=month $table='CREATE TABLE '.$name.' (id smallint NOT NULL AUTO_INCREMENT, address VARCHAR(25) NOT NULL, type VARCHAR(10) NOT NULL, used smallint default \'0\', PRIMARY KEY (id))'; for ($i=0; $i<count($proxy_address); $i++) { $query='INSERT INTO '.$name.' (address, type) VALUES (\''.$proxy_address[$i].'\', \''.$proxy_type[$i].'\')'; } //// update file 'daily_table.txt' with the new name of daily table $file=fopen('./daily_table.txt', 'w'); //// close mysql connection /************ FUNCTIONS ************/ function get_proxy_specs($td) { $html=$td->find('div', 0)->find('div', 0)->style; return $result[1]; } function get_proxy_address($tr) { // retrieve classes with the 'display:inline' css attribute $classes=get_classes($tr->find('td', 1)->find('span', 0)->find('style', 0)->xmltext); // get the piece of html with the proxy ip and make some formating to it $html=$tr->find('td', 1)->xmltext; $html=preg_replace(array('%<style>(\s+\.[_\w\-]+\{display:(none|inline)\})*\s+</style>%', '%\s%', '%"%', '%/%'), '', $html); // get the proxy ip applying some filters $ip=filter($html, $classes); // get the proxy port $port=$tr->find('td', 2)->plaintext; // return with the format 'ip:port' return $ip.':'.$port; } function get_classes($html) { foreach ($html as $element) { if (preg_match('%([\w\-_]+?)\{display:inline\}%', $element, $result)) { $classes[]=$result[1]; } } return $classes; } function filter($html, $classes) { // filter 1: class with the 'display:inline' value css attribute foreach ($html as $key=>$element) { foreach ($classes as $cl) { $pattern='class='.$cl; } } } // filter 2: class name is made only by numbers and is not in the $classes array foreach ($html as $key=>$element) { } } // filter 3: elements with the 'display:inline' css-style value attribute foreach ($html as $key=>$element) { if (strpos($element, 'display:inline')) { $html[$key]=str_replace('style=display:inline', '', $element); } } // retrieve de ip address $ip=''; foreach ($html as $key=>$element) { if (preg_match('%^#([\d.]+)#$%', $element, $result)) { $ip.=$result[1]; } } return $ip; } ?>
luego haria falta otro archivo que yo le he llamado 'proxy_functions.php', que contendria lo siguiente: <?php //// data $server='localhost'; $user='foo'; $pass='bar'; $db_name='example'; $used_limit=9; function get_proxy() { // read the name of the updated proxy list $file=fopen('./daily_table.txt', 'r'); // connect to database // select a pseudo-random proxy that have been used $used_limit or less times $query='SELECT id, address, type FROM '.$name.' WHERE used<'.$used_limit.' ORDER BY rand() LIMIT 1'; // update the number of times the proxy has been used $query='UPDATE '.$name.' SET used=used+1 WHERE id='.$row['id']; // return the array=(address, type) return array('address'=>$row['address'], 'type'=>$row['type']); } ?>
con lo que simplemente, para usar un proxy al azar en un script php, bastaria con correr en una cron job el primer script 1 vez al dia por ejemplo (o 2, o las que sean), y luego en el script en el que quieras usar el proxy hacer: <?php include('proxy_functions.php'); $proxy=get_proxy(); // $proxy['address']=a.b.c.d:p // $proxy['type']=http | https | socks4/5 ?>
y bueno, el codigo no tiene casi nada de verificacion de errores, por no decir que tiene solo 1 xD, y tampoco creo que sea el codigo mas optimo y eficiente pero funcionar funciona. por ultimo decir que quien quiera usar el codigo que lo use, asi como copiarlo, modificarlo, imprimirlo y pegarlo en la nevera, o lo que sea, pero se agradeceria que si se comparte en alguna otra web o blog, se ponga un enlace a la fuente que en este caso seria esta pagina. un saludo!
|
|
|
236
|
Media / Juegos y Consolas / Re: Timado hasta la médula
|
en: 4 Febrero 2013, 23:12 pm
|
venga ya, tu amigo se baja un hack para conseguir esas monedas y lo prueba con tu cuenta y no con la suya?
las opciones que se me ocurren son:
1. tu amigo es poco amigo (por decirlo suavemente) y lo hizo con tu cuenta por si algo salia mal en lugar de con la suya.
2. los dos estabais metidos de lleno en lo del hack y por lo tanto tu sabias bien lo que estabais haciendo.
3. tu eres tu amigo y nos has soltado este historia para que se te intente ayudar. vamos el tipico de tira la piedra y esconde la mano.
en la primera opcion pues lo suyo seria que tu amigo te diera su cuenta si es que el no se ha quedado sin monedas, y si tambien las ha perdido, entonces tienes que sacar algo en claro: NUNCA le reveles tus contraseñas a nadie.
en las dos otras opciones, pues siendo lo mas sincero que puedo, te lo tienes bien merecido por hacer trampas. no veas como jode jugar a algun juego para relajarse y desconectar un poco y ver que hay un puñado de crios con hacks tocando las...
un saludo!
|
|
|
237
|
Programación / PHP / problema con curl+proxy
|
en: 8 Enero 2013, 21:15 pm
|
hola a todos, estoy intentando ver la web de whatismyip.com a traves de un proxy con curl y la verdad es que ya no se que mas probar... tengo el siguiente simple codigo: $url='http://www.whatismyip.com/'; //curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5); echo $data;
y es que no consigo hacerlo funcionar. en $address he probado decenas de diferentes proxys sacados de hidemyass, y como mucho me han funcionado un par o tres. la mayoria de veces se queda cargando la pagina hasta que me da el error de timeout. ademas, he acabado probando los proxys que se actualizan al momento y los que tienen mas de un 70% de velocidad de conexion y tiempo de respuesta, pero sigue sin funcionarme casi nunca. el tema es... ¿estoy haciendo algo mal? ¿podria hacer algo mejor? ¿es normal que de, y no exagero, 200 proxys solo funcionen 3 o 4 y tan solo 1 vez? porque luego a la que repetia ya no funcionaba... si esto es el pan de cada dia con los proxys gratuitos, la verdad no entiendo por que tanta gente va detras de listas con miles de proxys si luego solo funcionan el 1% con suerte. cualquier duda o sugerencia sera mas que bienvenida, ya que yo por ahora me he quedado sin ideas. muchas gracias adelantadas
|
|
|
239
|
Foros Generales / Foro Libre / Re: ¿Como devolveríais los trastos a una cajera?
|
en: 7 Enero 2013, 21:27 pm
|
"Si quieres te vengo a buscar cuando termine tu horario para ir a tomar estas cervezas a casa, que tal?"
jajaja solo falto algo tipo: ¿compras tu los condones o lo hago yo? yo tambien soy bastante timido pero si ya habido tanto tonteo y miraditas y tal, ¿por que no pruebas simplemente a decirle si quiere ir a tomar algo un dia de estos? y ya la siguiente vez que os veais alli pues depende de como la veas hablais sobre el dia y la hora o algo asi. y si eso falla pues... cuando estes pagando tira una moneda disimuladamente, y cuando ella la vaya a coger le levantas rapido un poco la ropa y ZAS! salami del bueno
|
|
|
240
|
Comunicaciones / Redes / Re: virtualbox+no-ip+abrir puerto
|
en: 7 Enero 2013, 21:16 pm
|
nunca he instalado ningun servidor ni lo he configurado ni nada, asi que yo no puedo ayudarte mucho mas... xD prueba lo que dices de reinstalarlo y a ver que sale, aunque si esta bien instalado y configurado no se que es lo que te puede impedir la conexion. mira el firewall en la virtualizada a ver si es que te esta bloqueando las peticiones... y si no es eso, pues ya si que si que ni idea. a ver si algun otro usuario te echa un cable, y ya contaras como lo has hecho cuando lo logres un saludo!
|
|
|
|
|
|
|