Web scraping recolección en la web

Web scraping es una técnica utilizada mediante programas de software para extraer información de sitios web. Usualmente, estos programas simulan la navegación de un humano en la World Wide Web (red de informática mundial) ya sea utilizando el protocolo HTTP (Hypertext Transfer Protocol) manualmente, o incrustando un navegador en una aplicación.

El web scraping está muy relacionado con la indexación de la web, la cual indexa la información de la web utilizando un robot y es una técnica universal adoptada por la mayoría de los motores de búsqueda. Sin embargo, el web scraping se enfoca más en la transformación de datos sin estructura en la web (como el formato HTML) en datos estructurados que pueden ser almacenados y analizados en una base de datos central, en una hoja de cálculo o en alguna otra fuente de almacenamiento. Alguno de los usos del web scraping son la comparación de precios en tiendas, la motorización de datos relacionados con el clima de cierta región, la detección de cambios en sitios webs y la integración de datos en sitios webs.

También es utilizado para obtener información relevante de un sitio a través de los rich snippets (Fragmentos enriquecidos). En los últimos años el web scraping se ha convertido en una técnica muy utilizada dentro del sector del posicionamiento web gracias a su capacidad de generar grandes cantidades de datos para crear contenidos de calidad.

Un ejemplo de web scraping se realiza a la siguiente pagina web para descargar cómics que tiene la pagina https://xkcd.com/ el cual tiene un patrón en los cómics que nos podemos aprovechar para descargar masivamente las imagenes que contiene la pagina.

import requests
from bs4 import BeautifulSoup
import urllib

def run():
    for i in range(1, 6):
        response =requests.get('https://xkcd.com/{}'.format(i))
        soup = BeautifulSoup(response.content, 'html.parser') #Parseamos el                       contenido de la respuesta 
        image_container = soup.find(id='comic') 
        image_url = image_container.find('img')['src']
        image_name = image_url.split('/')[-1] print('Descargando la imagen {}'.format(image_name)) 
        urllib.urlretrieve('https:{}'.format(image_url), image_name) 

if __name__ == '__main__': 
    run()

este ejemplo lo puedes encontrar en los repositorio de github

https://github.com/giseproi/web_scraping

y lo primero que tienes que hacer es instalar los requerimientos que necesita el script para su funcionamiento adecuado.

pip install -r requirements.txt