|
59 | 59 | "\n", |
60 | 60 | "\n", |
61 | 61 | "**Importante**\n", |
62 | | - "Una vez que logremos ques e abra el navegador no debemos teclear nada en él, el control lo llevaremos desde el programa en Python" |
| 62 | + "Una vez que logremos ques e abra el navegador no debemos teclear nada en él, ni cerrarlo el control lo llevaremos desde el programa en Python" |
| 63 | + ] |
| 64 | + }, |
| 65 | + { |
| 66 | + "cell_type": "code", |
| 67 | + "execution_count": 6, |
| 68 | + "metadata": {}, |
| 69 | + "outputs": [ |
| 70 | + { |
| 71 | + "name": "stdout", |
| 72 | + "output_type": "stream", |
| 73 | + "text": [ |
| 74 | + "Requirement already up-to-date: selenium in c:\\users\\rafa\\appdata\\roaming\\python\\python38\\site-packages (4.4.3)\n", |
| 75 | + "Requirement already satisfied, skipping upgrade: trio~=0.17 in c:\\users\\rafa\\appdata\\roaming\\python\\python38\\site-packages (from selenium) (0.21.0)\n", |
| 76 | + "Requirement already satisfied, skipping upgrade: certifi>=2021.10.8 in c:\\users\\rafa\\appdata\\roaming\\python\\python38\\site-packages (from selenium) (2022.9.14)\n", |
| 77 | + "Requirement already satisfied, skipping upgrade: urllib3[socks]~=1.26 in c:\\users\\rafa\\appdata\\roaming\\python\\python38\\site-packages (from selenium) (1.26.9)\n", |
| 78 | + "Requirement already satisfied, skipping upgrade: trio-websocket~=0.9 in c:\\users\\rafa\\appdata\\roaming\\python\\python38\\site-packages (from selenium) (0.9.2)\n", |
| 79 | + "Requirement already satisfied, skipping upgrade: idna in d:\\instalado\\anacondainstalado\\lib\\site-packages (from trio~=0.17->selenium) (2.10)\n", |
| 80 | + "Requirement already satisfied, skipping upgrade: sniffio in c:\\users\\rafa\\appdata\\roaming\\python\\python38\\site-packages (from trio~=0.17->selenium) (1.3.0)\n", |
| 81 | + "Requirement already satisfied, skipping upgrade: cffi>=1.14; os_name == \"nt\" and implementation_name != \"pypy\" in d:\\instalado\\anacondainstalado\\lib\\site-packages (from trio~=0.17->selenium) (1.14.3)\n", |
| 82 | + "Requirement already satisfied, skipping upgrade: sortedcontainers in d:\\instalado\\anacondainstalado\\lib\\site-packages (from trio~=0.17->selenium) (2.2.2)\n", |
| 83 | + "Requirement already satisfied, skipping upgrade: outcome in c:\\users\\rafa\\appdata\\roaming\\python\\python38\\site-packages (from trio~=0.17->selenium) (1.2.0)\n", |
| 84 | + "Requirement already satisfied, skipping upgrade: attrs>=19.2.0 in d:\\instalado\\anacondainstalado\\lib\\site-packages (from trio~=0.17->selenium) (20.3.0)\n", |
| 85 | + "Requirement already satisfied, skipping upgrade: async-generator>=1.9 in d:\\instalado\\anacondainstalado\\lib\\site-packages (from trio~=0.17->selenium) (1.10)\n", |
| 86 | + "Requirement already satisfied, skipping upgrade: PySocks!=1.5.7,<2.0,>=1.5.6; extra == \"socks\" in d:\\instalado\\anacondainstalado\\lib\\site-packages (from urllib3[socks]~=1.26->selenium) (1.7.1)\n", |
| 87 | + "Requirement already satisfied, skipping upgrade: wsproto>=0.14 in c:\\users\\rafa\\appdata\\roaming\\python\\python38\\site-packages (from trio-websocket~=0.9->selenium) (1.2.0)\n", |
| 88 | + "Requirement already satisfied, skipping upgrade: pycparser in d:\\instalado\\anacondainstalado\\lib\\site-packages (from cffi>=1.14; os_name == \"nt\" and implementation_name != \"pypy\"->trio~=0.17->selenium) (2.20)\n", |
| 89 | + "Requirement already satisfied, skipping upgrade: h11<1,>=0.9.0 in c:\\users\\rafa\\appdata\\roaming\\python\\python38\\site-packages (from wsproto>=0.14->trio-websocket~=0.9->selenium) (0.13.0)\n" |
| 90 | + ] |
| 91 | + } |
| 92 | + ], |
| 93 | + "source": [ |
| 94 | + "# ejecutar esta casilla solo si queremos instalar o actualizar selenium; \n", |
| 95 | + "# muchas veces tras hacerlo deberemos hacer \"Kernel->restart\" para que los cambios se apliquen\n", |
| 96 | + "import sys\n", |
| 97 | + "!{sys.executable} -m pip install --upgrade --user selenium" |
63 | 98 | ] |
64 | 99 | }, |
65 | 100 | { |
66 | 101 | "cell_type": "code", |
67 | 102 | "execution_count": 1, |
68 | 103 | "metadata": {}, |
69 | | - "outputs": [], |
| 104 | + "outputs": [ |
| 105 | + { |
| 106 | + "name": "stderr", |
| 107 | + "output_type": "stream", |
| 108 | + "text": [ |
| 109 | + "<ipython-input-1-cfdeb6085767>:7: DeprecationWarning: executable_path has been deprecated, please pass in a Service object\n", |
| 110 | + " driver = webdriver.Chrome(executable_path=chromedriver,options=chrome_options)\n" |
| 111 | + ] |
| 112 | + } |
| 113 | + ], |
70 | 114 | "source": [ |
71 | | - "chromedriver = \"c:/hlocal/tdm/chromedriver.exe\" # cambiar esta variable con el path a nuestro chromedriver\n", |
| 115 | + "chromedriver = \"./chromedriver.exe\" # cambiar esta variable con el path a nuestro chromedriver\n", |
72 | 116 | "import os\n", |
73 | 117 | "from selenium import webdriver # si da error, desde anaconda prompt hacer pip install --user selenium\n", |
74 | 118 | "os.environ[\"webdriver.chrome.driver\"] = chromedriver\n", |
|
87 | 131 | }, |
88 | 132 | { |
89 | 133 | "cell_type": "code", |
90 | | - "execution_count": 8, |
| 134 | + "execution_count": 2, |
91 | 135 | "metadata": {}, |
92 | 136 | "outputs": [], |
93 | 137 | "source": [ |
|
106 | 150 | }, |
107 | 151 | { |
108 | 152 | "cell_type": "code", |
109 | | - "execution_count": 9, |
| 153 | + "execution_count": 3, |
110 | 154 | "metadata": {}, |
111 | 155 | "outputs": [], |
112 | 156 | "source": [ |
113 | | - "coord = driver.find_element_by_link_text(\"COORDENADAS\")\n", |
| 157 | + "from selenium.webdriver.common.by import By\n", |
| 158 | + "coord = driver.find_element(By.LINK_TEXT,\"COORDENADAS\")\n", |
114 | 159 | "coord.click()" |
115 | 160 | ] |
116 | 161 | }, |
|
123 | 168 | }, |
124 | 169 | { |
125 | 170 | "cell_type": "code", |
126 | | - "execution_count": 10, |
| 171 | + "execution_count": 4, |
127 | 172 | "metadata": {}, |
128 | 173 | "outputs": [], |
129 | 174 | "source": [ |
130 | | - "lat = driver.find_element_by_id(\"ctl00_Contenido_txtLatitud\")\n", |
131 | | - "lon = driver.find_element_by_id(\"ctl00_Contenido_txtLongitud\")\n", |
| 175 | + "lat = driver.find_element(By.ID,\"ctl00_Contenido_txtLatitud\")\n", |
| 176 | + "lon = driver.find_element(By.ID,\"ctl00_Contenido_txtLongitud\")\n", |
132 | 177 | "latitud = \"41.545639 \"\n", |
133 | 178 | "longitud = \"1.893817\"\n", |
134 | 179 | "lat.send_keys(latitud)\n", |
135 | 180 | "lon.send_keys(longitud)\n", |
136 | 181 | "\n", |
137 | | - "datos = driver.find_element_by_id(\"ctl00_Contenido_btnDatos\")\n", |
| 182 | + "datos = driver.find_element(By.ID,\"ctl00_Contenido_btnDatos\")\n", |
138 | 183 | "datos.click()" |
139 | 184 | ] |
140 | 185 | }, |
141 | 186 | { |
142 | | - "cell_type": "code", |
143 | | - "execution_count": null, |
| 187 | + "cell_type": "markdown", |
144 | 188 | "metadata": {}, |
145 | | - "outputs": [], |
146 | 189 | "source": [ |
147 | | - "Ahora supongamos que queremos saber el uso principal de este inmueble, para ellos buscamos " |
| 190 | + "Ahora supongamos que queremos determinar el uso principal de este inmueble, para ellos buscamos " |
148 | 191 | ] |
149 | 192 | }, |
150 | 193 | { |
151 | 194 | "cell_type": "code", |
152 | | - "execution_count": 11, |
| 195 | + "execution_count": 6, |
153 | 196 | "metadata": {}, |
154 | 197 | "outputs": [ |
155 | 198 | { |
|
163 | 206 | ], |
164 | 207 | "source": [ |
165 | 208 | "xpath = \"//*[./span/text()='Referencia catastral']//label\"\n", |
166 | | - "etiqs = driver.find_element_by_xpath(xpath)\n", |
| 209 | + "etiqs = driver.find_element(By.XPATH,xpath)\n", |
167 | 210 | "print(etiqs.text)\n", |
168 | 211 | "xpath = \"//*[./span/text()='Uso principal']//label\"\n", |
169 | | - "etiqs = driver.find_element_by_xpath(xpath)\n", |
| 212 | + "etiqs = driver.find_element(By.XPATH,xpath)\n", |
170 | 213 | "print(etiqs.text)" |
171 | 214 | ] |
172 | 215 | }, |
|
190 | 233 | "metadata": {}, |
191 | 234 | "outputs": [], |
192 | 235 | "source": [ |
193 | | - "html = driver.find_element_by_xpath(\"/html\")\n", |
| 236 | + "html = driver.find_element(By.XPATH,\"/html\")\n", |
194 | 237 | "print(html.text)" |
195 | 238 | ] |
196 | 239 | }, |
|
207 | 250 | "metadata": {}, |
208 | 251 | "outputs": [], |
209 | 252 | "source": [ |
210 | | - "head = driver.find_element_by_xpath(\"/html/head\")\n", |
211 | | - "body = driver.find_element_by_xpath(\"/html/body\")\n", |
212 | | - "html2 = body.find_element_by_xpath(\"/html\")" |
| 253 | + "head = driver.find_element(By.XPATH,\"/html/head\")\n", |
| 254 | + "body = driver.find_element(By.XPATH,\"/html/body\")\n", |
| 255 | + "html2 = body.find_element(By.XPATH,\"/html\")" |
213 | 256 | ] |
214 | 257 | }, |
215 | 258 | { |
|
225 | 268 | "metadata": {}, |
226 | 269 | "outputs": [], |
227 | 270 | "source": [ |
228 | | - "hijos = driver.find_elements_by_xpath(\"/html/body/*\")\n", |
| 271 | + "hijos = driver.find_elements(By.XPATH,\"/html/body/*\")\n", |
229 | 272 | "for element in hijos:\n", |
230 | 273 | " print(element.tag_name)" |
231 | 274 | ] |
|
243 | 286 | "metadata": {}, |
244 | 287 | "outputs": [], |
245 | 288 | "source": [ |
246 | | - "divs = driver.find_elements_by_xpath(\"/html/body/*/div\")\n", |
| 289 | + "divs = driver.find_elements(By.XPATH,\"/html/body/*/div\")\n", |
247 | 290 | "print(len(divs))" |
248 | 291 | ] |
249 | 292 | }, |
|
253 | 296 | "metadata": {}, |
254 | 297 | "outputs": [], |
255 | 298 | "source": [ |
256 | | - "divs = body.find_elements_by_xpath(\"./*/div\")\n", |
| 299 | + "divs = body.find_elements(By.XPATH,\"./*/div\")\n", |
257 | 300 | "print(len(divs))" |
258 | 301 | ] |
259 | 302 | }, |
|
270 | 313 | "metadata": {}, |
271 | 314 | "outputs": [], |
272 | 315 | "source": [ |
273 | | - "divs = driver.find_elements_by_xpath(\"/html/body//div\")\n", |
| 316 | + "divs = driver.find_elements(By.XPATH,\"/html/body//div\")\n", |
274 | 317 | "print(len(divs))" |
275 | 318 | ] |
276 | 319 | }, |
|
280 | 323 | "metadata": {}, |
281 | 324 | "outputs": [], |
282 | 325 | "source": [ |
283 | | - "labels = driver.find_elements_by_xpath(\"//label\")\n", |
| 326 | + "labels = driver.find_elements(By.XPATH,\"//label\")\n", |
284 | 327 | "print(len(labels))" |
285 | 328 | ] |
286 | 329 | }, |
|
293 | 336 | }, |
294 | 337 | { |
295 | 338 | "cell_type": "code", |
296 | | - "execution_count": null, |
| 339 | + "execution_count": 7, |
297 | 340 | "metadata": {}, |
298 | | - "outputs": [], |
| 341 | + "outputs": [ |
| 342 | + { |
| 343 | + "name": "stdout", |
| 344 | + "output_type": "stream", |
| 345 | + "text": [ |
| 346 | + "7801701DF0070S0001QY \n" |
| 347 | + ] |
| 348 | + } |
| 349 | + ], |
299 | 350 | "source": [ |
300 | 351 | "id = \"ctl00_Contenido_tblInmueble\"\n", |
301 | | - "div = driver.find_element_by_id(id)\n", |
302 | | - "label = div.find_element_by_xpath(\"//label\")\n", |
| 352 | + "div = driver.find_element(By.ID,id)\n", |
| 353 | + "label = div.find_element(By.XPATH,\"//label\")\n", |
303 | 354 | "print(label.text)" |
304 | 355 | ] |
305 | 356 | }, |
|
310 | 361 | "outputs": [], |
311 | 362 | "source": [ |
312 | 363 | "xpath = \"//*[./span/text()='Referencia catastral']//label\"\n", |
313 | | - "etiqs = driver.find_element_by_xpath(xpath)\n", |
| 364 | + "etiqs = driver.find_element(By.XPATH,xpath)\n", |
314 | 365 | "print(etiqs.text)" |
315 | 366 | ] |
316 | 367 | }, |
317 | 368 | { |
318 | 369 | "cell_type": "code", |
319 | | - "execution_count": null, |
| 370 | + "execution_count": 8, |
320 | 371 | "metadata": {}, |
321 | | - "outputs": [], |
| 372 | + "outputs": [ |
| 373 | + { |
| 374 | + "name": "stdout", |
| 375 | + "output_type": "stream", |
| 376 | + "text": [ |
| 377 | + "\n", |
| 378 | + "\n", |
| 379 | + "\n" |
| 380 | + ] |
| 381 | + } |
| 382 | + ], |
322 | 383 | "source": [ |
323 | | - "clase = driver.find_elements_by_xpath(\"(//label)[position()=3]\")\n", |
| 384 | + "clase = driver.find_elements(By.XPATH,\"(//label)[position()=3]\")\n", |
324 | 385 | "print(clase[0].text)\n", |
325 | 386 | "\n", |
326 | | - "etiqs = driver.find_elements_by_xpath(\"//label\")\n", |
| 387 | + "etiqs = driver.find_elements(By.XPATH,\"//label\")\n", |
327 | 388 | "print(etiqs[2].text)\n", |
328 | 389 | "\n", |
329 | | - "ulti = driver.find_elements_by_xpath(\"(//label)[last()]\")\n", |
| 390 | + "ulti = driver.find_elements(By.XPATH,\"(//label)[last()]\")\n", |
330 | 391 | "print(ulti[0].text)\n" |
331 | 392 | ] |
332 | 393 | }, |
333 | 394 | { |
334 | 395 | "cell_type": "code", |
335 | | - "execution_count": null, |
| 396 | + "execution_count": 9, |
336 | 397 | "metadata": {}, |
337 | 398 | "outputs": [], |
338 | 399 | "source": [ |
|
0 commit comments