General

Sacar CUANTAS URLs tiene indexada Google de nuestra web automática con Python

Si quieres saber como van evolucionando tus proyectos de webs automáticas a nivel de urls indexadas en google, he preparado un script muy cómodo que además te guarda los resultados en una hoja de calcula de Google Drive.

Este tutorial lo he separado en 3 partes, en los que he creado un video para cada parte y al final del post os comparto los códigos python para hacerlo funcionar.

Video de Python y hojas de cáclulo de Drive

La primera parte es como conectar un código de Python con las hojas de cáclulo de Google Drive, aquí te dejo el paso a paso:

Primero pasos con Selenium y Python

Después antes de meternos con el script final, quiero darte los primeros pasos necesarios para usar Selenium con el webdriver de Chrome para automatizar el navegador desde Python:

Video de sacar CUANTAS URLs tiene indexada Google

Y ya si por fin el tercer vídeo donde muestro para que sirve el código que puedes ver abajo y que es lo que hace.

Código de indexacion.py

Aquí tienes el código de indexacion.py:

import gspread
import time
from datetime import datetime
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
 
now = datetime.now()
today = now.strftime("%Y-%m-%d")

gc = gspread.service_account(filename='scraping-link-d8434e0ec14a.json')

# Abrir por titulo
sh = gc.open("Indexacion proyectos")

# Seleccionar primera hoja
worksheet = sh.get_worksheet(0)

# Para continuar por una nueva fila
values_list = worksheet.col_values(1)
row_index = len(values_list) + 1

urls = [
    'scraping.link',
    'parascrapear.com',
    ]
 
indexes = {}
xpath = '//*[@id="result-stats"]'
 
for url in urls:
    search_url = f'https://www.google.com/search?q=site%3A{url}&oq=site%3A{url}&aqs=chrome..69i57j69i58.6029j0j1&sourceid=chrome&ie=UTF-8'
    
    print(f'Abriendo {search_url}')
    options = Options()
    options.headless = False
    driver = webdriver.Chrome(executable_path="/home/nicolas/Proyectos/python/sheets/chromedriver_linux64/chromedriver",options=options)
    driver.get(search_url)
    index = driver.find_element_by_xpath(xpath).text # Aproximadamente 501 resultados (0,31 segundos) 
    index = index.split(' ')[1]
    print(f'Indexados: {index}')
    
    
    time.sleep(5)
    driver.quit()
    
    indexes[url] = index
    
    # Introducir datos en el documento de Google Drive
    worksheet.update('A'+str(row_index), url)
    worksheet.update('B'+str(row_index), today)
    worksheet.update('C'+str(row_index), index)
    
    row_index = row_index + 1

print(indexes)

Código de indexacion-sl.py

Aquí tienes el código usando el API de Scraping.link indexacion-sl.py:

import gspread
from lxml import html
from scraping_link import ScrapingLinkRequest

from datetime import datetime

# API Key Scraping.link
apikey = "TU_API_KEY"

now = datetime.now()
today = now.strftime("%Y-%m-%d")

gc = gspread.service_account(filename='scraping-link-d8434e0ec14a.json')

# Abrir por titulo
sh = gc.open("Indexacion proyectos")

# Seleccionar primera hoja
worksheet = sh.get_worksheet(0)

# Para continuar por una nueva fila
values_list = worksheet.col_values(1)
row_index = len(values_list) + 1

urls = [
    'disparatusingresos.com',
    ]
 
indexes = {}
xpath = '//*[@id="result-stats"]'
 
for url in urls:
    search_url = f'https://www.google.com/search?q=site%3A{url}&oq=site%3A{url}&aqs=chrome..69i57j69i58.6029j0j1&sourceid=chrome&ie=UTF-8'
    
    print(f'Abriendo {search_url}')    
    
    r = ScrapingLinkRequest.scrape(search_url, apikey)
    
    tree = html.fromstring(r.content)

if not tree.xpath(xpath)[0]:
continue index = tree.xpath(xpath)[0].text_content() # Aproximadamente 501 resultados (0,31 segundos) index = index.split(' ')[1] print(f'Indexados: {index}') indexes[url] = index # Introducir datos en el documento de Google Drive worksheet.update('A'+str(row_index), url) worksheet.update('B'+str(row_index), today) worksheet.update('C'+str(row_index), index) print(indexes)

También te puede interesar

Ir arriba