Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - goditozor

#1
Hola amigos que tal?

Hace un par de meses que he estado aprendiendo scraping con diferentes clases como XPath.

Hace un par de semanas he estado intentando hacer algo que probablemente es sencillo pero no he podido encontrar la respuesta fácilmente así que me gustaría que me pudiesen ayudar.

Antes de mostrarle mi código, quiero que entiendan el problema.

Tengo una una pagina web que requiere un login y luego llenar otro formulario y enviarlo para que me muestre los datos que yo requiero.
Por lo tanto los pasos serian los siguientes.

1. Abrir la url y hacer login  (1er formulario)
2. En la nueva url despues de hacer login, debo llenar ciertos campos y enviar (2do formulario)
3. Hacer scraping.

Mi problema radica en el paso #2.  Despues de hacer el primer login no tengo idea de como usar el resultado del primer cURL (ver el codigo)

Este codigo toma una url que contiene el formulario y un Array que tiene los valores que pasare el formulario
function curlPost($postUrl, $postFields) {
     
        $cookie = 'cookie.txt'; // Setting a cookie file to store cookie
     
        $ch = curl_init();  // Initialising cURL session
     
        // Setting cURL options
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);    // Prevent cURL from verifying SSL certificate
        curl_setopt($ch, CURLOPT_FAILONERROR, TRUE);    // Script should fail silently on error
        curl_setopt($ch, CURLOPT_COOKIESESSION, TRUE);  // Use cookies
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE); // Follow Location: headers
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); // Returning transfer as a string
        curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie);  // Setting cookiefile
        curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie);   // Setting cookiejar
        curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1a2pre) Gecko/2008073000 Shredder/3.0a2pre ThunderBrowse/3.2.1.8");    // Setting useragent

        curl_setopt($ch, CURLOPT_URL, $postUrl);    // Setting URL to POST to       
        curl_setopt($ch, CURLOPT_POST, TRUE);   // Setting method as POST

        curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($postFields));    // Setting POST fields as array
                 
        $results = curl_exec($ch);  // Executing cURL session
       

        curl_close($ch);    // Closing cURL session
       
        return $results;
    }



Luego, este primer bloque, lo ejecuto de la siguiente manera:

$user ="userxxx";
        $pass = "passxxxxxxx";


        $login_url = "http://www.xxxxx.com/repositorio/consultas_web/";
        $post_array = array ('login' => $user,
                        'password' => $pass);   // Building post array.


        $results = curlPost($login_url, $post_array);



En este punto se que el primer paso cumple su función ya que si cambio la clave o user por uno invalido, me dara una advertencia de credenciales invalidos.

para verificar tengo que hacer un echo $results;

Esto me lleva a la sub url que seria el "home" despues de hacer login

En mi caso, como estoy probando en localhost me da un error 404 cuando el login es correcto. La ruta es la siguiente:

[b]localhost/scraping/[/b]consultas_privadas.php
donde el texto en negritas es mi directorio local. y consultas_privadas.php es el subdirectorio que resulta despues de enviar el formulario.


El problema es que no se como continuar con la segunda etapa.


Pues, tengo que usar el resultado ( $results ) y hacer un cURL nuevamente  para repetir este método pero en un formulario diferente


intente utlizando el mismo metodo que en el paso 1 pero no se que estoy haciendo mal.
$results2 = curlPost($result, $post_array2);

y la verdad es que no se si esta mal o bien pues no se si tengo hacer un echo $results; para poder hacer el segundo $cURL.


Alguien ha intentado hacer dos cURLs seguidos antes?


Estoy perdido :huh: cualquier ayuda es muy apreciada.
Gracias por tomar el tiempo para leer :)
#2
Quiero programar procesos en linux, creare muchos hijos usando fork() y tengo que sincronizarlos para que compartan un recurso ya sea usando semaforos, monitores, etc... algun libro en especial de los que estan aqui me recomendarian?    :D
#3
Si, procesos.   Si bueno me estoy haciendo con el man pero no todos tienen ejemplos y sobretodo en la parte de sincronizacion esta bien pobre, usualmente un libro tiene esta parte mejor explciada
#4
Cual de los libros de C++ que estan en este foro me recomiendan para aprender a manejar procesos en Linux?  Me fije que hay una recopilacion muy bonita de libros si me pueden ayudar con esta pregunta estaria muy agradecido    :P

PD: Cuando digo manejar procesos quiero decir que tengo que crearlos, matarlos y sincronizarlos haciendo uso de semaforos, monitores, etc
#5
Alguien sabe como poner un JLabel donde estaba un JButton, por ejemplo si yo tengo 4 botones (Jbutton) que ocupan toda la pantalla y al presionar uno quiero que se desaparezcan y colocar un Jlabel donde estaban los botones.

intente haciendole  mibotton.setVisible(false); a todos los botones y se desaprecen pero cuando se escriben los label se escriben mas abajo de donde estaban los botones es decir como el nombre del metodo lo dice solo le kita la visibilidad a los botones y no hace nada mas.

no he intentado hacerle setLocation ni el setBounds porque quisiera mantener el Layout que estoy usando.

si alguien me podria ayudar estaria agradecido  :)
#6
tambien estoy en ubuntu pero en el 10.04, podrias ensenarme el metodo que usaste para abrir los puertos?
#7
Hola, visitantes del elhacker.net, hoy vengo con un problemita que estoy teniendo con una aplicacion que estoy desarrollando en Java tengo un par de dias trabajando en ella y el enfoque del proyecto son los sockets, estuve desarrollando el programa y testeando el servidor y el cliente en mi propia laptop y todo iba bien, el problema salio cuando intente correr el servidor en una computadora y el cliente en otra... resultado = no me pude conectar al servidor, es decir solo he logrado que se conecte si hago correr ambos en la misma computadora, estuve pensando que podian ser los puertos que estaban cerrados los abri y pobre en distintos puertos y no logre nada.

Notas: programo en ubuntu 10.04 y uso eclipse

Disculpen la falta de ortografia estoy usando un teclado en ingles por lo que tengo prescindir de las tildes

Sin nada mas que decir les dejo los trozos de codigo que se ocupan de conectarse.

En el Servidor
public void run() {  
try {
while(true){
ss = new ServerSocket(9999);
areaChat.append("\nYo(Server):Escuchando"); // esto no tiene importancia es de la gui
s = ss.accept();
InetAddress addr = s.getInetAddress();
areaChat.append("\nYo(Server): El cliente "+addr.getHostName()+" se ha conectado desde: "+ addr.getHostAddress());
nwc c = new nwc();
Thread t = new Thread(c);
t.start();
}
} catch (IOException e) {
closeServer();
e.printStackTrace();
}
  }


En el Cliente:
public void run() {
try{
s = new Socket("localhost",9999);  // Aqui he intentado cambiar localhost por el ip de mi otra computadora sin tener exito
oos = new ObjectOutputStream(s.getOutputStream());
ois = new ObjectInputStream(s.getInputStream());
System.out.println("Conexion Exitosa");
this.readLine();
}catch(Exception ex){
this.close();
ex.printStackTrace();
}
}


sera que el problema esta en el servidor? por que algunos companeros de la facultad intentaron conectarse a mi servidor sin exito, justo como me sucedio a mi.

Yo me inclino mas por que es algo que tiene que ver con los puertos ya que de otro modo no tendria sentido que yo me pueda conectar a mi propia computadora y no a otras.

Gracias de antemano cualquier sugerencia sera apreciada.  :D
#8
gracias, muy atento y rápido
#9
Hola amigo en efecto sucedió que la mala manofactura de los contactos de la fuente de poder hizo que un contacto de los 4 que trae la fuente de poder para los coolers se saliera y por ende no encendían los fan coolers, sera que con silicona esto va bien?

#10
Hola como están?

El problema es el siguiente tengo dos fan coolers de esos genéricos bien baratos pero que ayudan a mantener una buena temperatura, el caso es que estaban funcionando bien y hoy llegue y me fije que no andaban mas.. de modo que la temperatura subió muchísimo! Intente reiniciar y apagar y prender el pc a ver si volvían a funcionar pero nada, en la bios intente modificar pero nada...

Disculpen si han leído esto antes pero use el buscador y no encontré nada parecido, no me gusta crear temas por que siempre me dicen que esta repetido, pero espero con ansias su ayuda y gracias de antemano  :)

Bueno lo único que se me ocurre es que a la fuente se le haya dañado algún componente que envía la corriente a los conectores de poder que van a los fan, creo que son de 12v o algo asi...

(Para aclarar son fan coolers de case y no del cpu o de la tarjeta de video).

Chau abrazos

había uno sacando el aire viciado del case y otro soplando aire fresco..

Discúlpenme de nuevo si esto les suena a cliché