El termino se utiliza ya que para obtener la información no lo hacemos por medio de un servicio restful o descargando algo de la página sino escudriñando en la información publica que nos dan, "escarbando" el sitio web para obtener lo que alli se presenta.
Algo que hay que tomar en cuenta es que hacer scraping de una página web puede desacatar sus terminos de servicio. Por lo que es importante asegurarse de que ese no es el caso, por ejemplo Twitter prohibe completamente hacer scraping en su página. Los dueños de sitios web pueden usar un archivo /robots.txt para darle instrucciones a los bots acerca de su sitio web; este es llamado The Robots Exclusion Protocol.
Si un robot quiere visitar el sitio Web http://www.ejemplo.com/index.html Antes de eso revisa el http://www.ejemplo.com/robots.txt, y encuentra algo como esto: El "User-agent: *" significa que esta sección aplica a todos los robots. El "Disallow: /" le indica al robot que no esta permitido obtener información de ningúna de las páginas de este sitio. User-agent: * Disallow: /
Hay que tomar en cuenta que los robots podrían ignorar el /robots.txt especialmente si son robots de malware que buscan vulnerabilidades en la seguridad. A demás de ello hay que estar consientes de que el /robots.txt es público, por lo que cualquiera podría ver que es lo que no quieres mostrar. Por lo que el /robots.txt no sirve para ocultar información.
Podemos encontrar información de algunos Robots registrados en el siguiente link: http://www.robotstxt.org/db.html En el /robots.txt podemos establecer que permisos le damos a estos robots, por nombre o bien bloquearlos. Sin embargo el robot podría ignorar esto.
Podemos utilizar los datos de un scraping para interactuar a través de un robot con usuarios en redes sociales. Por ejemplo: crear un bot en instagram que seleccione los links de cada foto y luego programar un comentario en cada entrada.
A través del scraping podemos automatizar la posición por la que varios artículos de nuestra web se posicionan en Google o, por ejemplo, controlar la presencia del nombre de nuestra marca en determinados foros.
1. : Los documentos HTML deben iniciar con una declaración de tipo. 2. El documento HTML esta contenido en and . 3. El meta y los scripts estan contenidos entre y . 4. La parte Visible esta contenida entre y . 5. Los titulos se definen con tags hasta . 6. Los parrafos tienen tag . De ello obtendremos algo como lo siguiente: .
# importar las librerias import requests from bs4 import BeautifulSoup # especificar el URL URL = ‘http://jarroba.com/' # Realizamos la petición a la web req = requests.get(URL)
#Comprobamos que la petición #nos devuelve un Status Code = 200 status_code = req.status_code if status_code == 200: # Pasamos el contenido HTML de la web a un #objeto BeautifulSoup() html = BeautifulSoup(req.text, "html.parser")
# Obtenemos todos los divs donde están las entradas #entradas = html.find_all('div', {'class': 'col-md-4 col-xs-12'}) # Recorremos todas las entradas para extraer #el título, autor y fecha for item, entrada in enumerate(entradas):
# Con el método "getText()" no nos devuelve el HTML titulo = entrada.find('span', {'class': 'tituloPost'}).getText() autor = entrada.find('span', {'class': 'autor'}) fecha = entrada.find('span', {'class': 'fecha'}).getText() # Imprimo el Título, Autor y Fecha de las entradas print "%d - %s | %s | %s" % (i + 1, titulo, autor, fecha) else: print "Status Code %d" % status_code