Build your own Amazon price scraper on Google sheets

Amarindaz
5 Nov 201919:31

Summary

TLDREste video ofrece una guía paso a paso para extraer precios de productos de la página web de Amazon y cargarlos en una hoja de cálculo de Google utilizando Google Apps Script. El proceso comienza abriendo el editor de scripts, donde se crea una función para capturar el contenido HTML de la página de Amazon. A través de expresiones regulares, se extrae el precio mostrado. Se utiliza la clase UrlFetch para obtener la página y se requiere autorización para ejecutar el script. Dado que Amazon restringe el acceso a sus datos a través de scripts automatizados, se sugiere el uso de un scraper de terceros que maneje la obtención de contenido HTML. Este scraper evita los problemas de IP y proporciona el contenido HTML deseado. El video también muestra cómo registrarse para obtener una clave de API gratuita y cómo integrarla en la hoja de cálculo de Google para realizar la extracción de datos. Finalmente, se explica cómo crear un bucle para extraer precios de múltiples productos y cómo manejar posibles errores o variaciones en la estructura de la página web de Amazon. El video concluye con una invitación a los espectadores a comunicarse si tienen dudas y a suscribirse al canal.

Takeaways

  • 🛍️ Primero, se necesita abrir el editor de scripts de Google Apps, nombrándolo de manera significativa como 'Amazon Scraper'.
  • 📄 Se utiliza la clase `UrlFetchApp` para obtener el contenido HTML de la página de Amazon deseada.
  • 🔍 Se emplea expresiones regulares para extraer el precio de los productos mostrado en la página web.
  • 🆔 El identificador clave para cada producto en Amazon es su ASIN (Amazon Standard Identification Number), que es único.
  • ✅ Para evitar errores y restricciones, se recomienda utilizar una API de terceros para obtener el contenido HTML.
  • 🔑 Es necesario registrarse en el sitio web de la API de terceros y obtener una clave API para usar sus servicios.
  • 📚 Se debe autorizar el acceso a la API la primera vez que se ejecute el script.
  • 📈 Se puede hacer uso de Postman para probar y visualizar cómo funciona la API antes de implementarla en la hoja de Google.
  • 📝 Se extrae la clave API de la hoja de configuración en Google Sheets y se utiliza en el script.
  • 🔄 Se utiliza un bucle `for` para recorrer en iteración todas las filas en la hoja de trabajo, actualizando el precio de cada producto.
  • 🤖 El script debe manejar posibles fallos, como cuando no se encuentra una coincidencia para el precio o cuando el formato de la página cambia.
  • 📋 Se debe actualizar la hoja de Google Sheets con el precio extraído después de cada iteración exitosa.

Q & A

  • ¿Qué es lo que se busca hacer en el video?

    -El objetivo del video es mostrar cómo extraer precios de productos de la página web de Amazon y agregarlos a una hoja de cálculo de Google utilizando Google Apps Script.

  • ¿Qué es necesario hacer antes de comenzar a escribir el código para extraer información de Amazon?

    -Es necesario abrir el editor de scripts, ir a Herramientas y luego a Editor de scripts, y crear un nuevo proyecto nombrado 'Amazon Scraper'.

  • ¿Cómo se obtiene el contenido HTML de una página en particular?

    -Para obtener el contenido HTML, se utiliza la función 'fetch' de la aplicación 'UrlFetch', pasando la URL deseada y luego utilizando el método 'getContentText' para obtener el texto HTML de la página.

  • ¿Qué es un ASIN y cómo se relaciona con la extracción de datos de Amazon?

    -Un ASIN (Amazon Standard Identification Number) es un número de identificación único asignado a cada producto en amazon.com. Se utiliza para identificar y rastrear productos específicos en la extracción de datos.

  • ¿Por qué se necesita un tercero para obtener el contenido HTML de una página de Amazon?

    -Se necesita un tercero debido a las restricciones y políticas de Amazon que pueden bloquear la extracción de datos directamente. Un tercero maneja la obtención del contenido HTML a través de proxies con diferentes direcciones IP, evitando mensajes de error y capturando automáticamente la información.

  • ¿Cómo se registra y obtiene una clave de API para utilizar un servicio de terceros para extraer contenido HTML?

    -Se debe registrar en el sitio web del servicio de terceros, obtener una clave de API gratuita que permitirá hacer un número limitado de solicitudes API al mes, y luego utilizar esa clave en el script para realizar la extracción de datos.

  • ¿Cómo se utiliza la clave de API en el script de Google Apps Script?

    -Se obtiene la clave de API de una celda específica en la hoja de configuración de la hoja de cálculo de Google, y luego se utiliza esta clave para realizar la solicitud a través del servicio de terceros para obtener el contenido HTML.

  • ¿Cómo se identifica el precio de un producto en el contenido HTML de Amazon?

    -Se utiliza una expresión regular para buscar y extraer el precio del producto, que generalmente se encuentra en un bloque de HTML específico con una clase o identificador único.

  • ¿Cómo se implementa la extracción de precios en una hoja de cálculo de Google?

    -Se utiliza Google Apps Script para iterar sobre una lista de ASINs, obtener el contenido HTML para cada uno, aplicar la expresión regular para extraer el precio y luego establecer el precio extraído en una columna de la hoja de cálculo.

  • ¿Qué sucede si la expresión regular no encuentra una coincidencia en el contenido HTML?

    -Si la expresión regular no encuentra una coincidencia, el script no podrá extraer el precio. Es importante incluir varias opciones en la expresión regular para abarcar diferentes formatos de bloques de precio que puedan aparecer en la página de Amazon.

  • ¿Cómo se puede mejorar la eficiencia del script para manejar diferentes formatos de precios en la página de Amazon?

    -Se pueden agregar múltiples casos a la lógica del script, utilizando diferentes expresiones regulares para encontrar el precio en diferentes bloques HTML. Esto asegura que el script funcione incluso si el formato del precio cambia en la página de Amazon.

  • ¿Qué pasos adicionales se recomiendan antes de ejecutar el script de extracción de precios?

    -Se recomienda limpiar el contenido HTML eliminando espacios y saltos de línea innecesarios para que el script de Google Apps Script pueda analizar el contenido más rápidamente y con mayor eficiencia.

Outlines

00:00

😀 Introducción al Scraping de Precios de Amazon

En este primer párrafo, se presenta el objetivo del video: enseñar cómo extraer precios de productos de amazon.com e insertarlos en una hoja de Google Sheets utilizando Google Apps Script. Se menciona la necesidad de abrir el editor de scripts, nombrar el proyecto y crear una función para realizar el scraping. Se destaca la estrategia de obtener el contenido HTML de la página y utilizar expresiones regulares para extraer el precio. Además, se aborda el uso de la clase UrlFetch y la obtención del número de identificación estándar de Amazon (ASIN) para construir la URL a scrapear.

05:01

🔍 Utilizando una API de Scraping de Terceros

Este párrafo describe el uso de una API de scraping de terceros para evitar restricciones y mensajes de error al obtener datos de Amazon. Se sugiere registrarse en el sitio web de la API para obtener una clave de API y se explica cómo usarla en la solicitud. Se menciona el uso de Postman para probar la API y se indica cómo implementar la lógica en una hoja de Google Sheets. Se destaca la necesidad de obtener el contenido HTML de la página y buscar la información de precio utilizando expresiones regulares.

10:02

📄 Procesamiento del Contenido HTML y Extracción del Precio

En este apartado, se explica cómo utilizar la expresión regular para buscar y extraer el precio del producto en el contenido HTML obtenido. Se menciona la necesidad de escapar ciertos caracteres especiales en la expresión regular y se proporciona un ejemplo de cómo hacer esto. Se describe el proceso de usar el método match() para encontrar coincidencias en el contenido HTML y cómo utilizar el índice para obtener la primera coincidencia. También se aborda el uso del método replace() para eliminar caracteres no deseados y obtener solo el precio del producto.

15:04

🔁 Scraping de Precios para múltiples ASINs

Este párrafo se enfoca en cómo adaptar el proceso de scraping para obtener precios de múltiples ASINs listados en una hoja de Google Sheets. Se sugiere utilizar un bucle for para recorrer filas y obtener el ASIN de cada fila. Se indica cómo utilizar el método getSheetByName() para obtener la hoja de configuración y extraer la clave de API de una celda específica. Se describe el proceso de reemplazar la clave de API en la solicitud y cómo utilizar el método setFormula() para establecer el precio extraído en la hoja de resultados. Además, se menciona la necesidad de manejar casos en los que no se encuentra un precio y se ofrece orientación para identificar y manejar diferentes bloques de HTML donde el precio puede aparecer.

Mindmap

Keywords

💡Scrapping

El scraping es el proceso de extraer datos de una página web para su posterior uso. En el video, se utiliza para obtener precios de productos de la página de Amazon.com, lo cual es fundamental para el tema principal del tutorial.

💡Google Spreadsheet

Una hoja de cálculo de Google es una herramienta en línea para organizar, analizar y visualizar datos. En el contexto del video, se emplea para almacenar los precios de los productos extraídos de Amazon, mostrando su relevancia en la integración de datos.

💡Google Apps Script

Google Apps Script es un entorno de programación que permite automatizar tareas en aplicaciones de Google como Google Sheets. En el video, se utiliza para crear un script que scrapea los precios y los introduce en una hoja de cálculo de Google.

💡Amazon Standard Identification Number (ASIN)

El ASIN es un identificador único asignado a cada producto vendido en Amazon. En el script del video, se utiliza para identificar y dirigirse a la página específica del producto cuya información de precios se desea scrapear.

💡Regular Expression

Una expresión regular es una secuencia de caracteres que forma una patrón utilizado para buscar otras secuencias de caracteres en una cadena de texto. En el video, se usan expresiones regulares para identificar y extraer el precio de los productos en la página web de Amazon.

💡Third-Party Scraper

Un scraper de terceros es un servicio que permite extraer datos de una página web de manera más eficiente y sin enfrentar las restricciones de los sitios web. En el tutorial, se recomienda el uso de un scraper de terceros para evitar mensajes de error y obtener el contenido HTML deseado.

💡API Key

Una clave de API es una contraseña que autoriza el acceso a una API específica. En el video, se menciona la necesidad de obtener una clave de API de un scraper de terceros para poder realizar solicitudes y obtener datos de la página web de Amazon.

💡Postman

Postman es una herramienta de prueba de API que permite a los desarrolladores enviar solicitudes a servidores y ver respuestas. En el contexto del video, se utiliza para probar y verificar que la solicitud al scraper de terceros funcione correctamente antes de implementarla en Google Sheets.

💡HTML Content

El contenido HTML es el código que compone una página web y que puede ser leído y manipulado por programas. En el video, el contenido HTML de la página de un producto en Amazon es el objetivo principal de scraping para extraer información de precios.

💡Product Advertising API

Es una API proporcionada por Amazon que permite a los desarrolladores acceder a información de productos y anuncios. Aunque no se utiliza directamente en el video, se menciona como una alternativa que podría bloquear el acceso si no se cumplen ciertos requisitos de ventas.

💡For Loop

Un bucle for es una estructura de control de flujo que se repite hasta que una condición no se cumple. En el script del video, se utiliza un bucle for para iterar sobre una lista de ASINs y scrapear el precio de cada uno de ellos, mostrando su importancia en la automatización de tareas.

Highlights

The video demonstrates how to scrape product prices from Amazon and input them into a Google spreadsheet.

A script editor is used to create a project named 'Amazon Scraper' for the scraping process.

The HTML content of a specific Amazon product page is fetched using the UrlFetchApp and regular expressions to extract the price.

An Amazon Standard Identification Number (ASIN) is used to uniquely identify each product on Amazon.com.

The script requires authorization the first time it is run.

To avoid automated access restrictions by Amazon, a third-party scraper service is recommended.

The third-party scraper service requires an API key, which can be obtained for free with registration.

The API key is stored in the Settings tab of the Google Sheet for easy access within the script.

The fetched HTML content is cleaned to remove unwanted spaces and line breaks for easier parsing.

Regular expressions are used to locate and extract the product price from the HTML content.

The script includes error handling for cases where the price block cannot be found in the HTML.

A for loop is used to iterate through a list of ASINs and scrape prices for each product.

The scraped prices are stored in column V of the Google Sheet.

The script accounts for different HTML structures that may represent the product price on Amazon.

The tutorial provides a complete solution for setting up an Amazon price scraper using Google Apps Script.

The source code and documentation for the third-party scraper are provided in the video description.

The video encourages viewers to subscribe to the channel for more informative content.

Transcripts

play00:00

hello everyone in this video we are

play00:02

going to see how to scrap the product

play00:05

prices from amazon.com website and input

play00:09

that into a Google spreadsheet using

play00:12

Google Apps spread so that is what we

play00:15

are going to see in this video let's see

play00:16

how to do that so first you need to open

play00:20

the script editor go to tools and script

play00:22

editor just do any project name let's

play00:27

name this as Amazon scrapper

play00:32

so let's rename the function to

play00:37

something meaningful

play00:38

maybe scrap up so we are going to scrap

play00:46

the prices the product prices from

play00:49

Amazon using the your fridge class so

play00:54

let's see how to do that let me create a

play00:58

variable or get content so we are going

play01:02

to get the HTML content of this

play01:07

particular page and with the help of

play01:12

regular expression we are going to pass

play01:14

the price which is shown here so that's

play01:19

our approach let's see how to do that so

play01:22

first we will go with URL fish so you

play01:30

are fetch app plus contain a lot of her

play01:32

method so we are going to use the first

play01:35

one phage and you need to pass the URL

play01:38

that you want to scrap pass the water

play01:41

here so you need to pass these mini long

play01:49

character basically you just need to

play01:52

give amazon.com /dp

play01:55

/ the acid name so Asin is nothing but

play01:59

Amazon standard identification number

play02:01

for each product and this thing is

play02:04

unique for each and every product on

play02:07

amazon.com so just ignore everything and

play02:10

make sure that it contains amazon.com

play02:13

DB slash followed by passing and click

play02:16

on enter you can see the same page so

play02:19

just copy that you are and go here paste

play02:23

it here so once you do this it will just

play02:29

fetch but we need to retry the HTML

play02:32

content of that particular URL so to pay

play02:35

the HTML content you need to use a

play02:38

method for get content text which return

play02:43

the text HTML text of this particular

play02:46

web page let's print that and see how it

play02:53

works so you need to authorize for the

play03:01

very first time when you're running the

play03:02

script so initially you will get the app

play03:07

isn't welfare if I am not sure why we

play03:09

are getting this message frequently we

play03:11

are getting this message so click on the

play03:13

advanced and click on go to Amazon scrap

play03:16

or click on allow so if you see her the

play03:24

rectus was failed stating that like his

play03:28

file truncated server response to

play03:31

discuss automated passes to Amazon data

play03:34

please contact APA services - support

play03:38

for information about migrating to

play03:41

something as so we are getting these

play03:43

error message asking us to contact them

play03:47

to get the product advertising API

play03:51

access so even if you use or product

play03:53

advertising ap axis a missile put as

play03:56

several restriction you can able to use

play03:58

the product advertising API only if you

play04:02

made enough sales through you are afraid

play04:05

otherwise they will block the product

play04:07

advertising ap so we are not going to

play04:09

directly pass the URL so we are going to

play04:13

use a third-party scrapper which help us

play04:17

to avoid these kind of message and gives

play04:20

the HTML in return so that third party

play04:23

take care of fetching the HTML content

play04:27

for the given you are by handling

play04:29

proxies with a different IP address and

play04:32

it's salts capture automatically so

play04:35

that's why we rely on the third party

play04:37

aap so you need to register to this

play04:40

third party eBay and you need to get

play04:42

your free ap key so you can make

play04:45

thousand API requests per month for free

play04:48

of cost and if you want to upgrade your

play04:49

plan you can go ahead and upgrade but

play04:51

for this tutorial the free plan is more

play04:53

than sufficient so I'm going to use that

play04:56

third party API have given a link in the

play04:58

YouTube description maybe you can go

play05:00

ahead and find your unique apt and put

play05:04

that here so this is how the URL will

play05:07

look like and this is completely from

play05:11

the third party API scrapper

play05:14

so we need to pass mainly two parameter

play05:17

one is you are unique ap key that you

play05:20

can get by logging into the website and

play05:23

the URL that you want to start that's it

play05:25

you just need to pass the two parameter

play05:27

and once you are done click on the send

play05:30

so we are using a postman to see how the

play05:33

API works so once it work successfully

play05:36

in the postman we are going to implement

play05:38

that on the Google sheet so you can see

play05:41

her it's crap the HTML page for the key

play05:44

one you are so this is the HTML page and

play05:49

the size of HTML page is one point five

play05:52

three sorry for three and the status is

play05:55

200 okay so the response is good so I'm

play05:59

going to copy the API key and put that

play06:05

ap key in the Settings tab b1 and I'm

play06:10

going to get that through the script so

play06:13

let's say where API key I'm going to get

play06:18

that from the be one cell of the

play06:22

Settings tab

play06:24

so use good active spreadsheet and get

play06:27

sheet by name past the name has settings

play06:36

and you need to use a gate range method

play06:39

that backs up row I'm calm

play06:42

it's in the first row and second column

play06:44

and get value take care of driving the

play06:48

value from the particular cell that's it

play06:51

now we can use this variable to replace

play06:54

our API key so just go ahead and copy

play06:58

them enter a URL create a new variable

play07:03

called tour and paste the URL and just

play07:09

replace this one with the apt variable

play07:14

that we already created here so that's

play07:28

it and we are going to use the same URL

play07:31

dot fetch method but instead of passing

play07:35

the URL data key we are going to pass

play07:37

the URL through the body scrapper and

play07:42

let's see how it works whether it can be

play07:45

able to fetch the HTML content or not so

play07:53

that's it it executed successfully let's

play07:56

see the logs yeah so it successfully

play07:58

retry the HTML content of the key one

play08:02

reward now just go here and copy this

play08:07

one so that you can able to copy the

play08:12

native HTML content to your clipboard

play08:14

and go to read jigsaw so where you can

play08:19

write your regular expression your tribe

play08:22

that Maison product price so this is a

play08:26

scene that we have used and let's

play08:29

inspect and see where exactly on the

play08:33

HTML content this price has been located

play08:36

so it is located

play08:38

on an IB price block underscored our

play08:43

price so just copy this one maybe you

play08:45

can do a right click and click on edit

play08:48

as HTML so just copy this once again

play08:52

getting timed out so what I'm going to

play08:54

do is I'm going to remove the unwanted

play08:55

spaces and line breaks to do that guru

play09:00

text fixer it's a most public tool I

play09:03

select the remove line break just paste

play09:07

the content and select option anymore

play09:10

line break and paragraph break click on

play09:13

the more line break so it make the data

play09:19

British odd click on copy to clipboard

play09:21

and now go to rejects select everything

play09:28

and paste your new data okay so now we

play09:32

can able to successfully paste the

play09:34

content just copy this span ID is equal

play09:40

to price block underscore our price and

play09:43

go here and paste it here so go to list

play09:49

where you can see something yeah we can

play09:52

able to find a match for the given text

play09:55

and we need to retype the price all

play09:57

right so to try the price would dot stop

play10:01

we should try everything and we need to

play10:05

retry up to this pan right here put it

play10:11

again and this is not accepted by edges

play10:16

you need to escape if we use up the /sk

play10:21

you need to use a backward slash and

play10:22

that's it alright saying that no result

play10:26

but of course if it shows the list for

play10:30

this character then obviously it should

play10:33

show the rest of the text here but

play10:37

because of the contact is to log is not

play10:40

able to display the result here so let's

play10:42

go head and fly that in the Google Apps

play10:44

Script itself by taking these regex so

play10:49

stow this retic somewhere here

play10:51

let's name that as a text so we put a

play10:55

matrix need to and post array text

play10:58

between the forward slash and you need

play11:05

to mention G which is for global and I

play11:08

for a sensitive 488 so now it become a

play11:12

proper

play11:13

read text so now what you have to do is

play11:16

you need to match this vertex with the

play11:20

HTML content so let's say price is equal

play11:26

to get content dot match have changed

play11:30

the matrix so when you do a match okay

play11:37

it's a regex

play11:37

you will get n number of matches but we

play11:41

are sure that we are going to get only

play11:43

one match so I am going to use the index

play11:47

to find the very first match let's say

play11:52

price a price of index 0

play12:01

and just before executing the a script

play12:05

you can use a method training so which

play12:09

remove the unwanted excess lines and

play12:13

unwanted spaces and make the content

play12:16

really short so that this Google Apps

play12:18

Script can parse the content quickly so

play12:22

now

play12:23

Xu and see how it works so it executed

play12:26

successfully go to view and logs and

play12:28

here you go we can able to scrap the

play12:32

price block that's it now what we are

play12:35

going to do is we just need this potion

play12:38

so we need to read this portion and this

play12:43

pan block so to remove that you can use

play12:46

a dot re place and replace the unwanted

play12:53

characters with an empty string so let

play12:59

me let's name this as price or I can use

play13:06

the same variable price and I just

play13:10

replace the unwanted block weight now

play13:14

I'm going to use the replace I cane so

play13:21

in this time so first we identify this

play13:31

character and replace it with a null

play13:33

string then we have identified this

play13:35

character and replace it with a string

play13:38

so that we will get only the product

play13:40

price so let's print that and see

play13:44

whether we are getting that exact right

play13:46

price or not so the script ran

play13:51

successfully in the log we exactly

play13:55

caught the product price that we want to

play13:59

spend that's it

play14:00

we have scrapped the prod price of the

play14:04

give one asking or for the queuing to

play14:06

armed now I have list of a secure so

play14:12

let's see how to scrap all the

play14:15

price through the spirit all we need to

play14:18

do is just look through from the road to

play14:21

to route well that's it

play14:23

so let's see how to do that and it's

play14:26

very simple you just need to include a

play14:29

for loop for hydration so we no need to

play14:35

do a hot code like oil or something we

play14:37

can use a method get last row to find

play14:40

the last row of this particular sheet

play14:44

let's name this sheet has scrap of sheet

play14:50

and the name of the sheet is scrap oh

play14:53

let's put that here stop writing this we

play14:56

can just use a striper sheet let's

play14:59

create a variable called last row and we

play15:03

are going to find the last row of that's

play15:05

proportionate so get last row which

play15:08

returns an integer and that indicates a

play15:12

last row of the spreadsheet and we just

play15:15

need to create a for loop started from

play15:17

is equal to because the first row is a

play15:21

header we need to include that and a

play15:23

lesser than or equal to last row and I

play15:27

plus plus that's it and these block of

play15:36

code should go inside the follow alright

play15:43

and here we need to replace the hot

play15:50

coded a same with last thing we get from

play15:54

the Google sheet so during each

play15:58

iteration the axon will vary and we need

play16:01

to pass the respective assign to this

play16:03

form so just put 1/2 plus followed by

play16:07

scrapper sheet dot hit range and a row

play16:17

should keep on change during each

play16:19

iteration so we can replace the row with

play16:22

I and the quorum is one dot good value

play16:27

that's it

play16:28

which will turn the value of the

play16:31

respective side during each hydration so

play16:44

now we need to put the price on the

play16:48

column V right so use the same object

play16:52

after we get a price scrap a sheet dot

play16:58

date range and use the hydration

play17:02

variable and we need to operate it on

play17:07

the corner too because we are getting

play17:08

the scene from the column one and

play17:11

instead of grid value you are going to

play17:14

set the value so we use the method set

play17:17

value and the value you are going to set

play17:21

the price of the asset that you are

play17:24

going to get during each hydration so

play17:27

let's execute and see whether it

play17:30

fetching the price of or passing or not

play17:33

so basically it will take a few seconds

play17:35

to fetch the price for each icings

play17:39

so if you see here for this passing it

play17:44

called free stating that cannot create

play17:48

property zero from one because it's not

play17:51

able to match that our text let's go to

play17:54

that and see white got failed so if you

play18:10

see the HTML content you can see that

play18:15

it's not priced block underscore our

play18:18

price its price block underscore sale

play18:21

price and that's why the script code

play18:23

fail so you need to add this additional

play18:26

case in case if the match is zero so

play18:29

that's what you want to consider and

play18:32

also you need to check whether the price

play18:35

is present first of all if the price is

play18:38

present you have identified

play18:40

the list of HTML block where the price

play18:43

get displayed in the Amazon and you have

play18:45

to find the right jex for all those

play18:47

blogs and put it in your Google Apps

play18:49

group so that first it will go and check

play18:52

in this block and it's not able to find

play18:53

then it will go and check in the next

play18:55

block

play18:57

if the match exists it will go and

play19:00

populate the price on the Google sheet

play19:02

basically the block will be not more

play19:06

than three to four so you just need to

play19:08

identify and put that here and that's it

play19:10

you are Amazon price scrapper is ready

play19:14

let me know if we have any doubts and

play19:17

you can find the source code of this

play19:21

grid the third part is crap out

play19:23

documentation you are and the

play19:25

description if you liked this video you

play19:27

comes up and don't forget to subscribe

play19:29

to my channel thank you

Rate This

5.0 / 5 (0 votes)

Related Tags
Extracción de datosAmazonGoogle SheetsApps ScriptWeb ScrapingProgramaciónAPITecnologíaTutorialE-commerce
Do you need a summary in English?