You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-[Estructuras de datos: Series](#estructuras-de-datos-series)
25
31
-[Estructura de datos: DataFrames](#estructura-de-datos-dataframes)
@@ -32,6 +38,12 @@
32
38
-[Sistemas de información](#sistemas-de-informaci%c3%b3n)
33
39
-[SQLite](#sqlite)
34
40
-[Nube](#nube)
41
+
-[Introducción a las APIs](#introducci%c3%b3n-a-las-apis)
42
+
-[¿Qué es una API?](#%c2%bfqu%c3%a9-es-una-api)
43
+
-[REST](#rest)
44
+
-[Documentación](#documentaci%c3%b3n)
45
+
-[JSON](#json)
46
+
-[Spotify API](#spotify-api)
35
47
36
48
# Introducción
37
49
@@ -249,6 +261,43 @@ Las tecnologías web en principio podemos pensarlas como el internet, pero el in
249
261
250
262
El internet también se compone de otros pedazos como telefonía(voip), mail(pop3, imap), compartir archivos(ftp). **El internet es una red que une varias redes públicas, privadas, académicas, de negocios, de gobiernos, etc.**
251
263
264
+
***Web Scrapping** es el proceso de extracción de datos almacenados en la web.
265
+
* Recopilar información almacenada en un servidor web
266
+
***Web Crawling** es para mapear e indexar páginas web para conocer su contenido, así como hace Google y varios buscadores.
267
+
* Conocer la estructura de la web
268
+
269
+
## Etica y legalidad
270
+
271
+
Es legal... depende
272
+
273
+
* Estoy violando alguna reglamentación local
274
+
* Estoy violando los "Términos y Condiciones" del sitio
275
+
* ¿Estoy accediendo a lugares no autorizados?
276
+
* ¿Es legal el uso que le voy a dar a los datos?
277
+
278
+
Estados Unidos lo define de la siguiente manera
279
+
280
+
> Quienquiera que acceda a una computadora sin autorización o exceda la autorización otorgada y de este modo obtenga información protegida
> “Artículo 211 bis 1.- Al que sin autorización modifique, destruya o provoque pérdida de información
294
+
contenida en sistemas o equipos de informática protegidos por algún mecanismo de seguridad, se le
295
+
impondrán de seis meses a dos años de prisión y de cien a trescientos días multa.
296
+
Al que sin autorización conozca o copie información contenida en sistemas o equipos de informática
297
+
protegidos por algún mecanismo de seguridad, se le impondrán de tres meses a un año de prisión y de
298
+
cincuenta a ciento cincuenta días multa.”
299
+
300
+
252
301
<hr>
253
302
254
303
**La web específicamente es un espacio de información** en el cual varios documentos(y otros recursos web) se pueden acceder a través de URLs y vínculos(links). La comunicación se da a través del protocolo HTTP.
> Selenium se debe de usar unicamente cuándo sea necesario
375
+
376
+
## Scrapy
377
+
378
+
* Scrapear en paralelo
379
+
* Trabajar con Xpath en lugar de BS4
380
+
* Limitar Requests en paralelo
381
+
* Setear demoras
382
+
* Limitar dominios
383
+
384
+
## Proxys
385
+
386
+
http://cualesmiip.com/
387
+
https://www.free-proxy-list.net/
388
+
https://github.com/Anorov/PySocks
389
+
390
+
## Tesseract
391
+
392
+
https://pypi.org/project/tesserocr/
393
+
394
+
Solución al error RuntimeError: Failed to init API, possibly an invalid tessdata path:
395
+
396
+
Descargar la carpeta tessdata del siguiente link --> https://github.com/tesseract-ocr/tessdata/archive/master.zip
397
+
Descomprimir en el escritorio la carpeta y cambiarle el nombre a solo “tessdata”
398
+
Moverla a la ruta donde tienen instalado Python, en mi caso es C:\Program Files (x86)\Python37-32
399
+
¡Problema solucionado! 😄
400
+
401
+
Otra biblioteca es OpenCV para el tratamiento de imagenes
402
+
310
403
# Pandas
311
404
312
405
**Pandas nos otorga diversas facilidades para el ““domado de datos””. Nos otorga dos estructuras de datos:**
@@ -430,6 +523,8 @@ La verdad es que para los profesionales de los datos, especialmente los profesio
430
523
431
524
## SQLite
432
525
526
+
https://www.sqlalchemy.org/
527
+
433
528
# Nube
434
529
435
530
La nube nos da un poder de cómputo casi inimaginable, nos permite procesar terabytes de datos en segundos. La nube se puede usar en dos grandes ocasiones. Cuando los datos ya no caben en tu computadora loca o cuando el tiempo de procesamiento esta siendo muy extenso, es en ese momento donde deberías usar la nube.
@@ -445,3 +540,22 @@ Diversas nubes ya ofrecen paquetes completos para el ciclo de datos, como Google
445
540
* BigQuery
446
541
* Dataproc
447
542
* Firestore
543
+
544
+
# Introducción a las APIs
545
+
546
+
## ¿Qué es una API?
547
+
548
+
Por sus siglas en inglés, una API es una i**nterfaz para programar aplicaciones (Application Programming Interface).** Es decir que es un conjunto de funciones, métodos, reglas y definiciones que nos permitirán desarrollar aplicaciones (en este caso un scraper) que se comuniquen con los servidores de Spotify. **Las APIs son diseñadas y desarrolladas por las empresas que tienen interés en que se desarrollen aplicaciones (públicas o privadas) que utilicen sus servicios.**
549
+
550
+
## REST
551
+
Un término se seguramente te vas a encontrar cuando estés buscando información en internet es REST o RESTful.**Significa representational state transfer y si una API es REST o RESTful, implica que respeta unos determinados principios de arquitectura, como por ejemplo un protocolo de comunicación cliente/servidor (que será HTTP) y (entre otras cosas) un conjunto de operaciones definidas que conocemos como métodos.** Ya veníamos usando el método GET para hacer solicitudes a servidores web.
552
+
553
+
## Documentación
554
+
Las APIs son diseñadas por las mismas empresas que tienen interés en que se desarrollen aplicaciones (públicas o privadas) que consuman sus servicios o información. Es por eso que la forma de utilizar las APIs variará dependiendo del servicio que querramos consumir. No es lo mismo utilizar las APIs de Spotify que las APIs de Twitter. Por esta razón es de suma importancia leer la documentación disponible, generalmente en la sección de desarrolladores de cada sitio.
555
+
556
+
## JSON
557
+
**Json significa JavaScript Object Notation y es un formato para describir objetos que ganó tanta popularidad en su uso que ahora se lo considera independiente del lenguaje.** De hecho, lo utilizaremos en este proyecto por más que estemos trabajando en Python, porque es la forma en la que obtendremos las respuestas a las solicitudes que realicemos utilizando las APIs.
0 commit comments