pablo-campillo / brand_car_scraper

A scraper tool that aims at gathering features and pictures of vehicles from www.coches.net in order to develop AI models related with the given domain such as a brand model classifier between others. The tool is developed in the context of a task for the 'Tipología y ciclo de vida de los datos' subject of the Data Science Master at UOC Univeristy.
Apache License 2.0
1 stars 0 forks source link

Optimizar proceso - Rotar credenciales #8

Closed pablo-campillo closed 3 years ago

pucedam commented 3 years ago

Buenas @pablo-campillo, creo que voy a empezar por esta para asegurarnos de que todo el proceso es viable. Me explico: Voy a empezar pidiendo páginas con el skeleton que has hecho tú y jugando con las cookies, de manera muy simple (sin preocuparme por estructura) para evitar que nos "baneen" (no nos devuelvan nada) al pedir la 5ª pagina.

Entonces, tal como lo tengo en mi mente:

  1. Pedir página seteando cookie
  2. Obtenemos página, extraemos cabecera set-cookie de la respuesta
  3. Nos guardamos la cookie en una variable para utilizarla posteriromente
  4. Pedimos siguiente pagina seteando el valor con la cookie anteriormente mencionada.

El proceso ya lo hice yo con un script en R y la network del browser abierta.

pablo-campillo commented 3 years ago

@pucedam, a parte de los apuntes, aquí hay un artículo sobre scraping en python que tiene buena pinta: https://www.scrapehero.com/how-to-prevent-getting-blacklisted-while-scraping/

Para las cookies, en los apuntes pone de usar session:

import requests
session = requests.Session()
session.post("http://example.com/login", data=dict(
email="me@domain.com",
password="secret_value"
))
<!-- peticiones realizadas con session agregan automáticamente las cookies-->
r = session.get("http://example.com/protected_page")

Esto hay que verlo porque como digo, no obtengo todos los anuncios de una página haciendo peticiones simples, se obtienen sólo 2.

pucedam commented 3 years ago

Finalmente optamos por utilizar Selenium, simulando a un navegador Chrome para ir pidiendo cada página.