Este código lo ideé en un tiempo que jugaba al Castleville, uno de los muchos juegos que circulan por Facebook. La idea en este script es bastante básica: Existe una página, http://www.trucoscastleville.com, en donde, además de publicar recompensas diarias, la gente publica solicitudes de aquellos elementos que necesitan para el juego. Cualquiera persona que haga clic sobre ellas, además de enviarle la recompensa a quien la solicito, la recibirá el mismo, por lo cual pensé en idear este script, que carga todas las url’s de recompensas en el navegador.
Consejo si decidís utilizarlo: instalad un complemento en el navegador que cierre automáticamente las pestañas tras un tiempo x inactivas, ya que si no aunque el codigo incluye un timer de 15 segundos entre apertura y apertura, os acabaréis encontrando con cientos de pestañas, bloqueando el navegador y posiblemente también el sistema.
import urllib, sgmllib
import subprocess
from sgmllib import SGMLParser
import webbrowser
import time
class URLLister(SGMLParser):
def reset(self):
SGMLParser.reset(self)
self.urls = []
self.urlsanitizada= []
def start_a(self, attrs):
href = [v for k, v in attrs if k=='href']
if href:
self.urls.extend(href)
import urllib
if __name__ == "__main__":
socket = urllib.urlopen("http://www.trucoscastleville.com/")
parser = URLLister()
parser.feed(socket.read())
parser.close()
socket.close()
for url in parser.urls:
if url not in parser.urlsanitizada:
parser.urlsanitizada.append(url)
for url in parser.urlsanitizada:
if url.find("http://www.trucoscastleville.com/2012") >= 0:
if url.find("#comment-") == -1:
if __name__ == "__main__":
socket2 = urllib.urlopen(url)
parser2 = URLLister()
parser2.feed(socket2.read())
parser2.close()
socket2.close()
for url in parser2.urls:
if url not in parser2.urlsanitizada:
parser2.urlsanitizada.append(url)
n=0
for url in parser2.urlsanitizada:
if url.find("apps.facebook.com") >= 0:
n=n+1
webbrowser.open(url, new=2, autoraise=False)
time.sleep(15)
1 comment for “[Python] Castleville.py”