Club para webmasters › Foros › Cursos › Iniciación a programación en Python
- Este debate tiene 7 respuestas, 4 mensajes y ha sido actualizado por última vez el hace 1 mes, 3 semanas por
Atreyu.
-
AutorEntradas
-
Hilo de discusión sobre el curso Iniciación a programación en Python
Jugando con el ranker para ir familiarizándome con python he realizado una modificación muy sencilla al proxies.py con idea de que coja los proxies de un fichero proxies.txt. De esta forma se le puede acoplar muy fácilmente otro programa o modulo que scrapee proxies. Aunque es muy sencillo puede ser interesante que compartamos las ideas entre todos, seguro que podemos hacer algo chulo.
# Nuevo proxies.py
# Importo los proxies desde proxies.txt import os f = open("proxies.txt", "r") lines = f.readlines() lista_proxies = [] for line in lines: lista_proxies.append(line)
Hola Daniel, esta de lujo. Te invito a crear el módulo y compartirlo con los compañeros. Un saludo
EDIT: Simplemente mencionar que para que funcione es necesario crear un dict tal cómo se explica en la clase del Rank Tracker.
-
Esta respuesta fue modificada hace 2 meses por
israel.
Gracias Daniel, muy buen aporte.
Yo sigo proponiendo Isra, ya para acabar de cerrar el ranktraker molaria un pequeño tutorial usando django o flask para que esos datos te los muestre en una web jejje por pedir
Eso daría para un curso aparte 😋
jajaj habia que intentarlo 🙂
Muy buenas,
He modificado un poco el código de Isra para recuperar título, descripción y headings de los 10 primeros resultados de una búsqueda en google.
Puede ser útil para tener una idea del artículo a escribir.
A cuidarse!
# Archivo de arranque del programa (start.py). from searchEngine.google import GoogleSearch from headings.headings import headings # Importamos la libreria SYS y otras import sys import io import os #Recupero resultados en google para la keyword keywords = "claustrofobia" urls = GoogleSearch(keywords) if urls.error == "ko": print("Mierda...Error... no lo he definido...") exit() #uso un directorio para guardar los ficheros de resultados. Si no existe lo creo directorio = "Ficheros" try: os.stat(directorio) except: os.mkdir(directorio) #abro fichero para escribir headings f = open(directorio + "\\" + keywords + ".txt", "w", encoding="utf-8") for x in urls.listaUrls: #Para cada url recupero título, descripción y sus headings hola = headings(x) if hola.error == "ko": print("Error xxx") continue f.write(x + "\n") f.write("Título: " + hola.titulo + "\n") f.write("Descripción: " + hola.descripcion + "\n") f.write("Headings: " + "\n") for h in hola.headings: f.write(h + "\n") f.write("\n") f.close
# Archivo google.py (para buscar en google y recuperar las urls) # Importamos la librería requests import requests # Importo la librería del Rank Tracker from bs4 import BeautifulSoup class GoogleSearch(): listaUrls = [] error = "" def __init__(self, QUERY): URL = "https://www.google.com/search?q=%s&oq=%s" % (QUERY, QUERY) headers = {"user-agent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.104 Safari/537.36"} resp = requests.get(URL, headers = headers) html = resp.content if resp.status_code == 200: soup = BeautifulSoup(html, "html.parser") links = soup.find_all("div", {"class" : "g"}) for x in links: a = x.find("a", href = True) u = a["href"] if str(u).startswith("http"): if "#" not in u: self.listaUrls.append(u) else: self.listaUrls.append(str(u).split("#")[0]) #print(len(self.listaUrls)) self.error = "ok" else: self.error = "ko" print ("Hay un error al procesar la solicitud: ", resp.status_code)
# Archivo headings. (Para cada encontrada en google recupero título, descripción y headings) import requests # Importo la librería del Rank Tracker from bs4 import BeautifulSoup class headings(): titulo = "" descripcion = "" headings = [] error = "" def __init__(self, URL): self.headings.clear() headers = {"user-agent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.104 Safari/537.36"} resp = requests.get(URL, headers = headers) html = resp.content if resp.status_code == 200: soup = BeautifulSoup(html, "html.parser") self.titulo = soup.title.text if soup.find("meta", property="description"): self.descripcion = soup.find("meta", property="description").get('content') elif soup.find("meta", property="og:description"): self.descripcion = soup.find("meta", property="og:description").get('content') elif soup.find("meta", property="twitter:description"): self.descripcion = soup.find("meta", property="twitter:description").get('content') headers = soup.find_all(["h1", "h2", "h3", "h4"]) for x in headers: h = str(x.name) self.headings.append(" "*(int(h[-1])-1) + h + " - " + x.getText().strip()) self.error = "ok" else: self.error = "ko" print ("Hay un error al procesar la solicitud: ", resp.status_code)
-
Esta respuesta fue modificada hace 1 mes, 3 semanas por
Atreyu.
Buenas Isra,
Me ha molado mucho el curso.
Veo que Visual Studio Code tiene un depurador/debug muy bueno.
Creo que podría estar muy bien hacer un minivideo de unos minutos explicando como usarlo para ver que hace la aplicación paso a paso y el contenido de las variables en tiempo real.
Sin duda puede ser muy útil para descubrir errores.
Un saludo!
-
Esta respuesta fue modificada hace 2 meses por
-
AutorEntradas
- Debes estar registrado para responder a este debate.