Underc0de

Foros Generales => Dudas y pedidos generales => Mensaje iniciado por: Dark Legend en Junio 16, 2013, 11:58:59 PM

Título: [SOLUCIONADO] Mechanize
Publicado por: Dark Legend en Junio 16, 2013, 11:58:59 PM
Alguien me podria explicar u orientar a usar esta libreria? E estado buscando información pero me pierdo u.u y pensaba que tal vez por aquí me podrían ayudar, trato de hacer un bot simple que entre a una pagina inicie sesión y a continuación entre a varios links (que tengo guardados en un archivo de texto) y escriba también un texto ya definido y que después de pasar por toda la lista de las paginas vuelva a pasar por cada una e introduzca otro texto, les agradecería mucho que me ayudaran.
Título: Re:Mechanize
Publicado por: Snifer en Junio 22, 2013, 11:54:36 AM
Que es lo que quieres ahcer especificamente o que es lo que llevas de proceso? cual es tu idea hacerlo por medio de un browser generado (un propio webkit) o directo por url?
Título: Re:Mechanize
Publicado por: Dark Legend en Junio 22, 2013, 10:44:46 PM
Bueno, lo que trato de hacer es automatizar una encuesta para varias personas en este caso lo haría en la pagina ask.fm, escribir la(s) pregunta(s), enviarlas y que después de eso revise si ya contesto alguien y que guarde su respuesta, esto es lo que llevo de codigo apenas hoy empece despues de informarme un poco.

import mechanize
br = mechanize.browser()

def Pregunta01():
      br.select_form(nr=1)
      br.form['question[question_text]'] = 'Pregunta'
#Inicio sesion para que las preguntas se guarden en la cuenta y acceder a las respuestas
br.open("http://ask.fm")
br.select_form(nr=0)
br.form['login'] = 'Usuario'
br.form['password'] = 'Pass'
br.submit()


br.open("http://ask.fm/usuario")
Pregunta01()
br.open("http://ask.fm/usuario")
Pregunta01()
br.open("http://ask.fm/usuario")
Pregunta01()
br.open("http://ask.fm/usuario")
Pregunta01()
br.open("http://ask.fm/usuario")
Pregunta01()
br.open("http://ask.fm/usuario")
Pregunta01()
br.open("http://ask.fm/usuario")
Pregunta01()
br.open("http://ask.fm/usuario")
Pregunta01()
br.open("http://ask.fm/usuario")
Pregunta01()
br.open("http://ask.fm/usuario")
Pregunta01()
br.open("http://ask.fm/usuario")
Pregunta01()
br.open("http://ask.fm/usuario")
Pregunta01()




En estos momentos estoy buscando como hacer que entre a varias cuentas y les pregunte sin tener que escribir siempre el "br.open("http://ask.fm/usuario")" y tener que estar cambiando el usuario manualmente.
Lo estuve probando y resulta que después de hacer aproximadamente 10 preguntas necesito ingresar un captcha entonces en estos momentos estoy buscando como resolverlo.
La verdad soy nuevo en esto y no se que opines /:
Título: Re:Mechanize
Publicado por: Sanko en Junio 24, 2013, 10:39:30 AM
Hola hamijo, he oído muchas veces sobre mechanize aunque nunca me pare a leerlo y por lo poco que he estado mirando de él, no deja de ser una versión mejorada de urllib, urllib2, a la que se le añaden unas cuantas cosas para parsear el propio html content.
PD : creo que mechanize hereda los methods y atributis de urllib2

Si quieres saber más acerca de la libreria podrias tirarte de la website oficial en sourceforge http://wwwsearch.sourceforge.net/mechanize/ (http://wwwsearch.sourceforge.net/mechanize/), aunque mi sincera opinión es que uses urllib, urllib2, cookielib y para parsear el content podrias usar 're' para hacerlo más manual o tirar de beautifulsoap que no parsea nada mal.