|
152
|
Programación / Scripting / Re: [python] crawler http
|
en: 23 Abril 2011, 05:55 am
|
Así es, pasa lo mismo. #!/usr/bin/env python3 import urllib.request, urllib.parse class CrawlerGeneral (): def __init__(self): self.headers = [("User-Agent", "Mozilla/5.0 (Windows; en-US; XP) Gecko/20101028 Firefox/3.5.15"), ("Accept", "*/*"), ("Accept-Language":"en-us,en;q=0.5"), ("Accept-Encodingg", "gzip,deflate"), ("Accept-Charset", "ISO-8859-1,utf-8;q=0.7,*;q=0.7")] self.opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor()) self.referer = '' def open(self, url, params = None): self.opener.addheaders = self.headers + [('Referer', self.referer)] self.referer = url if not params is None: params = bytes(urllib.parse.urlencode(params), 'utf-8') resp = self.opener.open(url, params) return resp.read().decode('utf-8')
from crawlergeneral import CrawlerGeneral from re import findall cg = CrawlerGeneral() data = cg.open('http://foros.solocodigo.com/ucp.php?mode=login') sid = findall('type="hidden" name="sid" value="([^"]+)"', data)[0] data = cg.open('http://foros.solocodigo.com/ucp.php?mode=login', {'username=':'Invisible','password':'password', 'sid':sid, 'redirect': 'index.php', 'login':'Identificarse'}) print(cg.open('http://foros.solocodigo.com/'))
Puede que alguien se anime ahora que el código es más corto
|
|
|
153
|
Programación / Scripting / Re: [python] crawler http
|
en: 21 Abril 2011, 15:13 pm
|
Creo que no me vale, urllib2 no está en python 3, no parece manejar el referer y desde luego ese codigo no funcionaría porque para mandar los datos del formulario hay un campo hidden con el sid, por eso tengo que hacer get y luego post.
Intuyo que si lo pasara a python3, arreglara el referer o no, al final tendría el mismo problema, no funcionaría y no sabría por qué.
|
|
|
154
|
Programación / Scripting / [python] crawler http
|
en: 20 Abril 2011, 23:43 pm
|
Hola, Quiero hacer un bot http, pero a la primera de cambio, en cuanto he intentado hacer login en un sitio, ya no he podido seguir, algo falla y no se que es. Este es el bot, muy simple, aunque estoy muy orgullosa de lo que llevo import http.client, urllib.parse from http import cookies from re import findall class CrawlerGeneral (): def __init__(self): self.logininfo = [] self.baseheaders = {"User-Agent":"Mozilla/5.0 (Windows; en-US; XP) Gecko/20101028 Firefox/3.5.15", "Accept": "*/*", "Accept-Language":"en-us,en;q=0.5", "Accept-Charset": "ISO-8859-1,utf-8;q=0.7,*;q=0.7"} self.cookies = cookies.SimpleCookie() self.referer = '' def _act(self, url, method, params={}): headers = self.baseheaders.copy() headers['Referer'] = self.referer headers['Cookie'] = self.cookies.output(header='', sep=';') self.referer = url if(url[:7] == 'htt'+'p://'): url = url[7:] safe = False elif (url[:8] == 'htt'+'ps://'): url = url[8:] safe = True else: self.error("I don't like the protocol, I don't know how to handle this.\n" + url) (baseurl, extendedurl) = url.split('/', 1) extendedurl = '/' + extendedurl params = urllib.parse.urlencode(params) conn = http.client.HTTPConnection(baseurl) if not safe else http.client.HTTPSConnection(baseurl) conn.request(method, extendedurl, params, headers) resp = conn.getresponse() return self._processResponse(resp) def _processResponse(self, resp): data = resp.read() headers = resp.getheaders() data = bytes.decode(data) for (k, v) in headers: if k == 'Set-Cookie': self.cookies.load(v) return (headers, data) def post(self, url, params): realparams = urllib.parse.urlencode(params) return self._act(url, 'POST', params) def get(self, url): return self._act(url, 'GET')
Esto es lo que intento hacer para que haga login: from crawlergeneral import CrawlerGeneral from re import findall cg = CrawlerGeneral() (headers, data) = cg.get('htt'+'p://foros.solocodigo.com/ucp.php?mode=login') sid = findall('type="hidden" name=%2526quot%253Bsid%2526quot%253B value="([^"]+)"', data)[0] (headers, data) = cg.post('htt'+'p://foros.solocodigo.com/ucp.php?mode=login', {'username' : 'Invisible', 'password': 'password', 'sid':sid, 'redirect': 'index.php', 'login':'Identificarse'}) print(data)
Pero no funciona, y no se por que... Necesito hacer login porque en algunos sitios la informacion que se muestra es distinta dependiendo de si haces login o no, este foro lo estoy usando para empezar, porque el login es simple en comparación con otros, creo GRacias!!
|
|
|
156
|
Comunicaciones / Android / conectar móvil android con google
|
en: 17 Abril 2011, 23:38 pm
|
Hola, Tengo un problemita mi móvil android no se conecta con google, puedo navegar por internet con la red wifi y todo eso, pero cuando pongo el nombre de ususuaria y la contraseña me dice: No se puede establecer una conexión de datos fiable con el servidor.
Es posible que se trate de un problema temporal o que no se proporcione la tarjeta SIM para servicios de datos. Si el problema persiste, llama al servicio de atención al cliente. No lo entiendo ¿qué puedo hacer? GRacias!!
|
|
|
160
|
Informática / Hardware / Re: No se que placa tengo
|
en: 10 Abril 2011, 19:51 pm
|
Hola, siento mucho revivir esto es el mismo problema... Sigo sin saber que placa tengo, he formateado el ordenador, he vuelto a instalar todo, un par de veces , he estado buscando mucha informacion , he instalado varios drivers, pero nada, no consigo que funcione el sonido. Tengo las capturas de pantalla del CPU-Z, y las puedo subir si las quereis, no se a donde porque drop.io ha desaparecido, pero podre encontrar algo en su lugar ¿Como hago para que funcione el sonido otra vez? GRacias!!
|
|
|
|
|
|
|