rastrear el feed

El feed es la página en xml donde se ofrece el contenido de nuestros post a los lectores RSS. Podemos utilizar esta información para monitorizar lo que publica nuestra competencia incluso antes de estar indexado en Google.

import random
import requests
import pandas as pd
from bs4 import BeautifulSoup
import xml.etree.ElementTree as ET
import re
google="https://google.es/"
url="https://comercioymarketing.es/feed/"
def GET_UA():
    uastrings = ["Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.111 Safari/537.36",\
                "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.72 Safari/537.36",\
                "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10) AppleWebKit/600.1.25 (KHTML, like Gecko) Version/8.0 Safari/600.1.25",\
                "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0",\
                "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.111 Safari/537.36",\
                "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.111 Safari/537.36",\
                "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/600.1.17 (KHTML, like Gecko) Version/7.1 Safari/537.85.10",\
                "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko",\
                "Mozilla/5.0 (Windows NT 6.3; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0",\
                "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.104 Safari/537.36"\
                ]
 
    return random.choice(uastrings)



#////////////////  EXTRAEMOS DEL FEED LAS URLS ///////////////////////////
r = requests.get(url, headers={'User-Agent': GET_UA()})
data = r.content

root = ET.fromstring(data.decode()) #Convierto de xml a string
enlaces = root.findall('.//item/link')
listaFeed=[]
for e in enlaces:
    listaFeed.append(e.text)
    #print(e.text)
print(listaFeed)


Cuando tengamos los link de todas las publicaciones podemos comprobar que el contenido esté indexado por Google de forma manual en el buacador: site:https://lapaginaweb.com/post1

O también podemos automatizar el proceso con este otro script en Selenium.

#//////////////////////    Comprobamos si está indexada  ///////////////////////////
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import NoSuchElementException
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support.ui import Select
import time

def nuevaAccion(listaSite,listaSitio,listaIndex):
    # Abrimos el navegador
    opts = Options()
    opts.add_argument("user-agent=GET_UA()")
    driver = webdriver.Chrome( 'chromedriver.exe', chrome_options=opts)
    driver.maximize_window()
    driver.get(google)

    # Saltamos Cookies de Google para seguir con la búsqueda con 5 tabulaciones.
    for i in range(4):
        ActionChains(driver).key_down(Keys.TAB).key_up(Keys.TAB).perform()
        time.sleep(0.5)
    ActionChains(driver).key_down(Keys.ENTER).key_up(Keys.ENTER).perform()


    # Demora, espera hasta cargar el logo de Google
    try:
        elemento = WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.XPATH, '//div[@id="lga"]')))
    except TimeoutException:
        print('La página tardó demasiado en cargarse')
        
    ############################## Vuelvo a pasar la lista de resultados 
    listaFuera=[]       
    for site in listaSite:
        
        
        try:
            time.sleep(2)
            buscar = driver.find_element_by_xpath('.//div[@class="ds"]/input')
            buscar.click()
            textoSite = 'site:'+site
            buscar.send_keys(textoSite)
            time.sleep(1)
            buscar.send_keys(Keys.ENTER)


            html_doc = driver.page_source
            soup = BeautifulSoup(html_doc, 'html.parser')
            span = soup.find_all('span')
            
            for s in span:
                print(s)

                empieza = re.findall(r'\<span.*?\>(.*?)\.',str(s)) #Saca texto de Google cuando NO indexa 
                if empieza == [' no obtuvo ningún resultado']:
                    sitio=site
                    print(sitio+" No está indexada")
                    listaSitio.append(sitio)
                    listaIndex.append("NO Indexada")
            listaFuera.append(site)
        except NoSuchElementException:
            print("Estamos fuera")
            print(site)
            break

    for fuera in listaFuera: # Todas las URL probadas la sacamos de la lista Site antes de return
        listaSite.remove(fuera)
    return(listaSite,listaSitio,listaIndex)

listaSitio=[]
listaIndex=[]

    
while listaFeed != []:    
    nuevaAccion(listaFeed,listaSitio,listaIndex)

Juande Marín

Profesor de Marketing digital, divulgador de inteligencia artificial y neuroeducación. Especializado en posicionamiento en buscadores y diseño web. Autor de varios libros relacionados con el comercio electrónico y el marketing digital (McGraw Hill, Paraninfo,…) Juande2marin

ComercioyMarketing

¿Quién me pone el ROL de profesor?

El profesor o profesora debe seguir el mismo proceso de automatriculación del alumnado, y una vez completado el proceso debe solicitar que el gestor del campus le cambie el rol para que pueda acceder al contenido exclusivo del profesor. No se hace de forma automatizada para evitar filtraciones. Puede solicitar el cambio de ROL al mail: infor@comercioymarketing.es

¿Cómo doy de alta al alumnado?

Cada alumno puede darse de alta accediendo al Instituto y al módulo desde el el CAMPUS.comercioymarketing.es Durante el proceso tendrá que rellenar un formulario y al finalizar deberá introducir la clave de matriculación que se facilitará al profesor a través de correo electrónico: info@comercioymarketing.es

Presentación del campus.

¿Puedo descargar el ebook?

Todo el material está protegido por los derechos de autor y la Ley de Propiedad Intelectual. No se puede descargar ni difundir total o parcialmente. No obstante si algún alumno desea el material en formato papel podrá adquirirlo en la editorial LULU.com

Para localizar los libros se puede hacer una búsqueda en la propia web por título o autor: Juan de Dios Marín Peñas. Los libros en papel suelen estar promocionados para el alumnado matriculado (75% de descuento).

¿Se adapta a normativa?

Todo el material didáctico está adaptado al Real Decreto del Ciclo Formativo y responde a los Resultados de Aprendizaje que se deben alcanzar.

Para facilitar la evaluación se facilita un cuadro de actividades y su relación con los criterios de evaluación y RA.

¿Cómo se paga?

Los alumnos y alumnas pueden pagar directamente ingresando o transfiriendo el importe de la matrícula a la cuenta facilitada por el gestor del campus (info@comercioymarketing.es).

Para facilitar la identificación de los pagos se aconseja que se hagan de forma agrupada por clase y se identifique el Instituto cuando se haga el ingreso.

 

¿Cuánto cuesta?

El coste es de 7€ al año por cada uno de los módulos que contrate el alumno. El profesor y el Instituto no pagan nada. Estos 7€ da derecho a 9 meses de matriculación con acceso al material didáctico, vídeos, actividades, hosting, etc.


¿Quieres un material didáctico adaptado y actualizado?

Si estás buscando herramientas didácticas adaptadas a las nuevas tecnologías, si quieres utilizar la inteligencia artificial de forma didáctica aportando valor y quieres dinamizar tus clases; nuestra plataforma didáctica interactiva es la solución. Facilitamos material didáctico actualizado, dinámico, interactivo, práctico, editable y motivador.

Contactanos

Categorías