{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Ejemplo WebScrapping Selenium" ] }, { "cell_type": "code", "execution_count": 204, "metadata": {}, "outputs": [], "source": [ "from selenium import webdriver\n", "import time\n", "import pandas as pd\n", "import random\n", "import tqdm as tqdm\n", "import warnings\n", "\n", "warnings.simplefilter(\"ignore\")" ] }, { "cell_type": "code", "execution_count": 205, "metadata": {}, "outputs": [], "source": [ "# https://chromedriver.chromium.org/downloads" ] }, { "cell_type": "code", "execution_count": 206, "metadata": {}, "outputs": [], "source": [ "options = webdriver.ChromeOptions()\n", "#options.add_argument('--headless')\n", "# listado extendido de opciones que se pueden usar con Chrome -> https://peter.sh/experiments/chromium-command-line-switches/\n", "options.add_argument('--remote-debugging-port=9515')\n", "\n", "#driver = webdriver.Chrome('./chromedriver.exe', options=options)\n", "driver = webdriver.Chrome('/usr/bin/chromedriver', options=options)\n", "url_ra = 'https://www.rastreator.com/'\n", "\n", "driver.implicitly_wait(3)\n", "driver.get(url_ra)" ] }, { "cell_type": "code", "execution_count": 207, "metadata": {}, "outputs": [], "source": [ "# Hacemos click en Aceptar cookies\n", "driver.find_element_by_xpath('//*[@id=\"cookies\"]/div/div[2]/button[2]').click()" ] }, { "cell_type": "code", "execution_count": 208, "metadata": {}, "outputs": [], "source": [ "# Pulsamos en comparar seguros de coche\n", "driver.find_element_by_xpath('//*[@id=\"html\"]/body/div[1]/section[1]/div[2]/div/div[1]/section/div/div[1]/a[2]/div').click()\n", "time.sleep(2)" ] }, { "cell_type": "code", "execution_count": 209, "metadata": {}, "outputs": [], "source": [ "# Seleccionamos Audio como marca de coche\n", "driver.find_element_by_xpath('//*[@id=\"li00008\"]').click()\n", "time.sleep(2)" ] }, { "cell_type": "code", "execution_count": 210, "metadata": {}, "outputs": [], "source": [ "# Seleccionamos modelo TT\n", "driver.find_element_by_xpath('//*[@id=\"li017\"]').click()\n", "time.sleep(2)" ] }, { "cell_type": "code", "execution_count": 211, "metadata": {}, "outputs": [], "source": [ "# Seleccionamos Gasolina\n", "driver.find_element_by_xpath('//*[@id=\"G\"]').click()\n", "time.sleep(2)" ] }, { "cell_type": "code", "execution_count": 212, "metadata": {}, "outputs": [], "source": [ "# Seleccionamos 150CV\n", "driver.find_element_by_xpath('//*[@id=\"150\"]').click()\n", "time.sleep(2)" ] }, { "cell_type": "code", "execution_count": 213, "metadata": {}, "outputs": [], "source": [ "# Seleccionamos 3 puertas\n", "driver.find_element_by_xpath('//*[@id=\"3\"]').click()\n", "time.sleep(2)" ] }, { "cell_type": "code", "execution_count": 214, "metadata": {}, "outputs": [], "source": [ "# Seleccionamos Conductor principal\n", "driver.find_element_by_xpath('//*[@id=\"Maindriver\"]').click()\n", "time.sleep(2)" ] }, { "cell_type": "code", "execution_count": 215, "metadata": {}, "outputs": [], "source": [ "# Seleccionamos Segunda mano comprado a particular\n", "driver.find_element_by_xpath('//*[@id=\"SecondHandFromPerson\"]').click()\n", "time.sleep(2)" ] }, { "cell_type": "code", "execution_count": 216, "metadata": {}, "outputs": [], "source": [ "# Seleccionamos No (el coche no tiene modificaciones)\n", "driver.find_element_by_xpath('//*[@id=\"div-No\"]/div/label/div').click()\n", "time.sleep(2)" ] }, { "cell_type": "code", "execution_count": 217, "metadata": {}, "outputs": [], "source": [ "# Introducimos como fecha matriculación Enero-2010\n", "\n", "from selenium.webdriver.support.ui import Select\n", "\n", "# Primero seleccionamos el desplegable para meses\n", "mes = Select(driver.find_element_by_id('CJCarDetailsHowOldIsCar_Month'))\n", "\n", "# Segundo, seleccionamos Enero en el desplegable del mes\n", "mes.select_by_visible_text('Enero')\n", "\n", "# Tercero, seleccionamos 2010 en el desplegable del año\n", "anio = Select(driver.find_element_by_id('CJCarDetailsHowOldIsCar_Year'))\n", "anio.select_by_visible_text('2010')\n", "\n", "time.sleep(2)\n", "# Pulsamos en Avanzar\n", "driver.find_element_by_xpath('//*[@id=\"btn_submit\"]').click()" ] }, { "cell_type": "code", "execution_count": 218, "metadata": {}, "outputs": [], "source": [ "# Seleccionamos Uso particular habitual\n", "driver.find_element_by_xpath('//*[@id=\"PrivateWork\"]').click()\n", "time.sleep(2)" ] }, { "cell_type": "code", "execution_count": 219, "metadata": {}, "outputs": [], "source": [ "# Seleccionamos aparcar el coche en la calle\n", "driver.find_element_by_xpath('//*[@id=\"StreetParking\"]').click()\n", "time.sleep(2)" ] }, { "cell_type": "code", "execution_count": 220, "metadata": {}, "outputs": [], "source": [ "# Seleccionamos de 6000 a 8000 km recorridos al año\n", "driver.find_element_by_xpath('//*[@id=\"KM7000\"]').click()\n", "time.sleep(2)" ] }, { "cell_type": "code", "execution_count": 221, "metadata": {}, "outputs": [], "source": [ "# Seleccionamos que conducimos moto además de coche\n", "driver.find_element_by_xpath('//*[@id=\"labelYesBike\"]/div/span').click()\n", "time.sleep(2)" ] }, { "cell_type": "code", "execution_count": 222, "metadata": {}, "outputs": [], "source": [ "# Seleccionamos que sólo hay un coche en la unidad familiar\n", "driver.find_element_by_xpath('//*[@id=\"labelOne\"]/div/span').click()\n", "time.sleep(2)" ] }, { "cell_type": "code", "execution_count": 223, "metadata": {}, "outputs": [], "source": [ "# Introducimos la fecha de nacimiento 01/01/2000\n", "driver.find_element_by_xpath('//*[@id=\"txt_dob\"]').send_keys('01/01/2000')\n", "\n", "time.sleep(2)\n", "# Pulsamos en Avanzar\n", "driver.find_element_by_xpath('//*[@id=\"btn_submit\"]').click()" ] }, { "cell_type": "code", "execution_count": 224, "metadata": {}, "outputs": [], "source": [ "# Seleccionamos España como lugar de nacimiento\n", "driver.find_element_by_xpath('//*[@id=\"image724\"]/label/div').click()\n", "time.sleep(2)" ] }, { "cell_type": "code", "execution_count": 225, "metadata": {}, "outputs": [], "source": [ "# Selecciomamos como fecha de obtención del carnet de conducir Febrero-2019\n", "\n", "# Primero seleccionamos el desplegable para meses\n", "mes = Select(driver.find_element_by_id('CJDriverDetailsLicenceDate_Month'))\n", "\n", "# Segundo, seleccionamos Enero en el desplegable del mes\n", "mes.select_by_visible_text('Febrero')\n", "\n", "# Tercero, seleccionamos 2010 en el desplegable del año\n", "anio = Select(driver.find_element_by_id('CJDriverDetailsLicenceDate_Year'))\n", "anio.select_by_visible_text('2019')\n", "\n", "time.sleep(2)\n", "# Pulsamos en Avanzar\n", "driver.find_element_by_xpath('//*[@id=\"btn_submit\"]').click()" ] }, { "cell_type": "code", "execution_count": 226, "metadata": {}, "outputs": [], "source": [ "# Seleccionamos España como lugar de obtención del carnét de conducir del conductor principal\n", "driver.find_element_by_xpath('//*[@id=\"image724\"]/label/div').click()\n", "time.sleep(2)" ] }, { "cell_type": "code", "execution_count": 227, "metadata": {}, "outputs": [], "source": [ "# Seleccionamos Hombre como Sexo y Soltero/a como estado civil del conductor principal\n", "driver.find_element_by_xpath('//*[@id=\"image_Male\"]/div/label/div').click()\n", "driver.find_element_by_xpath('//*[@id=\"Single\"]').click()\n", "time.sleep(2)" ] }, { "cell_type": "code", "execution_count": 228, "metadata": {}, "outputs": [], "source": [ "# Seleccionamos sin hijos en el domicilio\n", "driver.find_element_by_xpath('//*[@id=\"span_No\"]').click()\n", "time.sleep(2)" ] }, { "cell_type": "code", "execution_count": 229, "metadata": {}, "outputs": [], "source": [ "# Seleccionamos Administrativo como ocupación del conductor principal\n", "driver.find_element_by_xpath('//*[@id=\"TechnicianAdministrativeClerk\"]').click()\n", "time.sleep(2)" ] }, { "cell_type": "code", "execution_count": 230, "metadata": {}, "outputs": [], "source": [ "# Introducimos 48014 como CP del conductor principal\n", "driver.find_element_by_xpath('//*[@id=\"txtPostalCode\"]').send_keys('48014')\n", "\n", "time.sleep(2)\n", "# Pulsamos en Avanzar\n", "driver.find_element_by_xpath('//*[@id=\"btnPostalCodeClick\"]').click()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Introducimos la dirección del conductor principal\n", "\n", "# Seleccionamos Calle como tipo de vía\n", "Select(driver.find_element_by_id('driverStreetkind')).select_by_visible_text('Calle')\n", "time.sleep(5)\n", "\n", "# Introducimos como Vía, Avda. Madariaga\n", "driver.find_element_by_xpath('//*[@id=\"txtVia\"]').send_keys('Avda.Madariaga')\n", "\n", "# Introducimos 1 en Número, 2 en Piso y A en Puerta. Además Bilbao como Localidad\n", "driver.find_element_by_xpath('//*[@id=\"txtNumero\"]').send_keys('1')\n", "\n", "driver.find_element_by_xpath('//*[@id=\"frmAddress\"]/ng-container/div[3]/div[2]/div/input').send_keys('2')\n", "\n", "driver.find_element_by_xpath('//*[@id=\"frmAddress\"]/ng-container/div[3]/div[3]/div/input').send_keys('A')\n", "\n", "driver.find_element_by_xpath('//*[@id=\"driverTown\"]').send_keys('Bilbao')\n", "\n", "time.sleep(5)\n", "# Pulsamos en Avanzar\n", "driver.find_element_by_xpath('//*[@id=\"btnSkipAddress\"]').click()" ] }, { "cell_type": "code", "execution_count": 232, "metadata": {}, "outputs": [], "source": [ "# Seleccionamos Entre 1 y 2 años como tiempo viviendo en la vivienda actual\n", "time.sleep(2)\n", "driver.find_element_by_xpath('//*[@id=\"Between1and2\"]').click()\n" ] }, { "cell_type": "code", "execution_count": 233, "metadata": { "tags": [] }, "outputs": [], "source": [ "# Seleccionamos El conductor principal como el titular del seguro\n", "time.sleep(2)\n", "driver.find_element_by_xpath('//*[@id=\"MainDriver\"]').click()\n" ] }, { "cell_type": "code", "execution_count": 234, "metadata": {}, "outputs": [], "source": [ "# Introducimos DNI\n", "time.sleep(2)\n", "driver.find_element_by_xpath('//*[@id=\"txtDniNumber\"]').send_keys('11111111H')\n", "\n", "# Pulsamos en Avanzar\n", "driver.find_element_by_xpath('//*[@id=\"btnDniClick\"]').click()" ] }, { "cell_type": "code", "execution_count": 235, "metadata": {}, "outputs": [], "source": [ "# Seleccionamos que Sí estamos en el fichero de morosos\n", "time.sleep(2)\n", "driver.find_element_by_xpath('//*[@id=\"defaulterYes\"]').click()\n" ] }, { "cell_type": "code", "execution_count": 236, "metadata": {}, "outputs": [], "source": [ "# Seleccionamos que no hay otros conductores habituales\n", "time.sleep(2)\n", "driver.find_element_by_xpath('//*[@id=\"No\"]').click()\n" ] }, { "cell_type": "code", "execution_count": 237, "metadata": {}, "outputs": [], "source": [ "# Seleccionamos que no hemos tenido seguro \n", "time.sleep(2)\n", "driver.find_element_by_xpath('//*[@id=\"No\"]').click()\n" ] }, { "cell_type": "code", "execution_count": 238, "metadata": {}, "outputs": [], "source": [ "# Seleccionamos que no hemos dado parte en los últimos 5 años\n", "time.sleep(2)\n", "driver.find_element_by_xpath('//*[@id=\"spanNo\"]').click()\n" ] }, { "cell_type": "code", "execution_count": 239, "metadata": {}, "outputs": [], "source": [ "# Seleccionamos sin multas\n", "time.sleep(2)\n", "driver.find_element_by_xpath('//*[@id=\"divNo\"]/label/div/span').click()\n" ] }, { "cell_type": "code", "execution_count": 240, "metadata": {}, "outputs": [], "source": [ "# Introducimos 01/03/2022 como fecha de contratación\n", "time.sleep(2)\n", "\n", "driver.find_element_by_xpath('//*[@id=\"txt_buydate\"]').send_keys('01/03/2022')\n", "\n", "# Pulsamos en Avanzar\n", "driver.find_element_by_xpath('//*[@id=\"btn_submit\"]').click()" ] }, { "cell_type": "code", "execution_count": 241, "metadata": {}, "outputs": [], "source": [ "# Seleccionamos seguro a terceros\n", "time.sleep(2)\n", "driver.find_element_by_xpath('//*[@id=\"ThirdParty\"]').click()\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "driver.close()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.12" } }, "nbformat": 4, "nbformat_minor": 4 }