AdsPower
AdsPower

¿Cómo hacer scraping en Instagram? 3 maneras de sacarle el máximo provecho

By AdsPower||1,414 Views

Con sobre1.300 millones de usuarios, Instagram es una mina de oro de datos valiosos para las empresas. Se utiliza para investigación de mercado, generación de leads y monitorización del rendimiento. Pero extraer datos de Instagram para obtenerlos es la parte complicada.

El procedimiento no es sencillo y presenta muchas complejidades, ya sea debido a las políticas de Instagram o a ambigüedades técnicas.

Esta guía explica cómo extraer contenido de Instagram presentando tres maneras que incluyen métodos con poco código, con mucho código y un método sin código.

¿Es legal el scraping de Instagram?

La respuesta a la pregunta "¿Es legal el scraping de Instagram?" es sí y no al mismo tiempo, a medida que se cae. Según el tipo de datos que estás recopilando. Si quieres recopilar datos públicos de Instagram, la respuesta es sí.

Pero si estás recopilando datos privados de Instagram que requieren iniciar sesión en Instagram, entonces eso está explícitamente prohibido y puedes ht se enfrenta a la suspensión de la cuenta y, en el peor de los casos, a acciones legales. Pero incluso en el caso de datos públicos, debe asegurarse de utilizar un método legal de extracción de datos.

Para extraer datos legales de Instagram, puedes usar las API proporcionadas por Instagram. Estas incluyen la API Graph de Instagram y la API Basic Display de Instagram.

La API Graph le permite administrar y extraer datos sobre cuentas comerciales y de creadores. Mientras que la API Basic Display le brinda acceso de solo lectura Acceso a información básica del usuario. Ambas API cumplen con las políticas de Instagram sobre scraping, por lo que usarlas para scraping en Instagram es totalmente legal.

Sin embargo, si utiliza API no públicas o medios ilícitos que accedan a la plataforma sin permiso previo y a menudo desautoricen Si el raspador aparece como un usuario común, eso se considera raspado no autorizado e infringe las Términos de servicio.

Así que, antes de empezar a rastrear Instagram, da un paso atrás y piensa: "¿Instagram permite el rastreo?" y asegúrate de hacerlo con cuidado.

¿Qué datos de Instagram puedes extraer fácilmente?

Antes de mostrarte cómo extraer datos de Instagram, descubramos qué datos se pueden extraer legalmente de la plataforma. El extracción legal de datos web en Instagram puede darte acceso a estas tres categorías de datos:

  • Hashtags: Puedes ver las fotos y vídeos más recientes o de mejor rendimiento etiquetados con un hashtag específico en su descripción.

  • Perfiles: Puedes obtener datos de perfil como publicaciones, recuento de contenido multimedia y número de seguidores/seguidos.

  • Publicaciones: Puedes obtener métricas como el número de comentarios, el número de "Me gusta", el ID del perfil, la fecha de publicación y la URL.

Tres maneras de extraer contenido de Instagram

Aquí tienes tres maneras de extraer información de Instagram. Elige la que mejor se adapte a tus necesidades y recursos:

Extracción de datos de Instagram mediante la API de Instagram

Aquí tienes una guía paso a paso sobre cómo extraer datos de Instagram, pero asegúrate primero de cumplir con los siguientes requisitos:

  • Una cuenta de Instagram de empresa/creador

  • Una página de Facebook vinculada a la cuenta de Instagram de empresa/creador

  • Una cuenta de desarrollador de Facebook para usar la API de Instagram Graph

  • Una configuración de aplicación de Facebook registrada con ajustes mínimos

Una vez completados estos prerrequisitos, las siguientes etapas se verán así:

Añadir la función de inicio de sesión con Facebook:

Navega hasta el panel de tu aplicación de Facebook y haz clic en el botón "Producto +" del panel del lado izquierdo de la aplicación. ;la ventana. Desde allí, agregue el producto de inicio de sesión de Facebook. Por ahora, no cambie la configuración de este producto y déjela en los valores predeterminados.

A continuación, tendrás que implementar el inicio de sesión de Facebook en tu aplicación con la ayuda de Documentación de inicio de sesión de Facebook y asegúrese de que su procedimiento de inicio de sesión solicite estos dos permisos básicos:

¿Cómo hacer scraping en Instagram? 3 maneras de sacarle el máximo provecho

[Fuente de la imagen]

Generar token de acceso:

Realizar acciones desde el panel de la aplicación en la cuenta de Instagram requiere un token de acceso de usuario. En el lado derecho de la página del panel, abre

Aparecerá una ventana emergente informando que una aplicación (en este caso, su aplicación) está solicitando los permisos mencionados anteriormente. Simplemente presione el botón Continuar o Aceptar y obtendrá el Token de acceso de usuario en el campo Token de acceso de su panel.


¿Cómo hacer scraping en Instagram? 3 maneras de sacarle el máximo provecho

[Fuente de la imagen]

Ahora, usando el token de acceso de usuario, ejecutaremos algunas consultas básicas en la cuenta de Instagram.

1. Obtener el ID de la página de Facebook:

Primero, necesitamos el ID de la página de Facebook conectada a la cuenta de Instagram Business. Para ello, ejecuta la siguiente consulta "Obtener" en el panel.

"https://graph.facebook.com/v19.0/me/accounts?access_token={access-token}"


Esto devolverá el nombre y el ID de las páginas de Facebook pertenecientes al usuario de Facebook. El resultado tendrá este aspecto.

{
"datos": [
{
"token_de_acceso": "EAAJjmJ...",
"categoría": "Página de la aplicación",
"lista_de_categorías": [
{
"id": "2301",
"nombre": "Página de la aplicación"
}
],
"nombre":"Metricsaurus",
"id":"134895793791914",
"tareas": [
"ANALIZAR",
"ANUNCIA",
"MODERADO",
"CREAR_CONTENIDO",
"ADMINISTRAR"
]
}
]
}


Copia el ID de la página conectada a la cuenta de Instagram Business.

2. Obtener el ID de la cuenta de Instagram para empresas:

Usando el ID de Facebook, escribe el siguiente script en la barra de comandos y pulsa "Enviar".

134895793791914?campos=cuenta_comercial_de_instagram


Obtendrá el siguiente resultado.

{
"cuenta_empresarial_de_instagram": {
"id": "17841405822304914" // ID de usuario de IG conectado
},
"id":"134895793791914" // ID-de-página-de-Facebook
}


3. Obtener objetos multimedia de la cuenta de Instagram:

Copia el ID de Instagram de la salida y ejecuta el siguiente script para obtener los ID de todas las historias publicadas actualmente en la cuenta de Instagram Business.

17841405822304914/historias


La salida contendrá un ID para cada historia.

{
"data": [
{
"id": "17918195224117851"
},
{
"id": "17895695668004550"
},
{
"id": "17899305451014820"
},
{
"id": "17896450804038745"
},
{
"id": "17881042411086627"
},
{
"id": "17869102915168123"
}
]
}


Este es solo un ejemplo. Con la API de Instagram Graph, también puedes obtener otra información, como los metadatos de un usuario de Instagram, y realizar búsquedas de hashtags.

Ahora pasemos a otra forma de extraer datos de Instagram.

Extracción de datos de Instagram con un programa de extracción de datos en la nube sin código

Para quienes no tienen experiencia en codificación, el método anterior puede ser difícil de entender, y mucho menos de ejecutar. Pero no se preocupen. Hay raspadores de Instagram que hacen el trabajo sin requerir ningún código.

Aquí te mostramos cómo raspar Instagram con una de esas herramientas llamadas Apify.

Vaya a la página del raspador de Instagram de Apify:

Abra la página del raspador de Instagram de Apify y haga clic en Pruébalo gratis.


¿Cómo hacer scraping en Instagram? 3 maneras de sacarle el máximo provecho

Regístrate en Apify con tu correo electrónico, tu cuenta de Google o tu cuenta de Github. Esto te llevará a la consola de Apify, donde se realiza el scraping de Instagram.

Recopilar URL de Instagram de destino:

Usando la aplicación o el sitio web de Instagram, recopila todas las URL de perfil de las cuentas de Instagram que quieras extraer. En la consola de Apify, bsp;pegue todas estas URL en los campos de entrada dados, una a la vez. Para ingresarlas todas a la vez, puede hacer clic en el botón Editar en masa.

¿Cómo hacer scraping en Instagram? 3 maneras de sacarle el máximo provecho

Apify ofrece tres opciones de extracción de contenido para las URL proporcionadas. Puedes extraer contenido de publicaciones y comentarios, o bien obtener diferentes detalles de los perfiles.

Haga clic en Guardar e iniciar:

Deje el resto de la configuración sin cambios y presione Guardar e Iniciar para ejecutar el raspador. El resultado tendrá el formato de una tabla que contiene filas iguales al número nbsp;de URLs de perfil que proporcionaste con varias columnas que contienen metadatos de perfil como biografía, conteo de seguidores, conteo de publicaciones, conteo de reels, ID de cuenta y estado de verificación a nombrar algunos.

¿Cómo hacer scraping en Instagram? 3 maneras de sacarle el máximo provecho

Almacenar resultados:

Ahora presione el botón Exportar resultados y seleccione el formato de archivo deseado en la ventana emergente. También puede limpiar los datos seleccionando o omitiendo los campos que no necesita. Después, puede descargar los resultados, verlos en una nueva pestaña o compartirlos a través de un enlace. />

¿Cómo hacer scraping en Instagram? 3 maneras de sacarle el máximo provecho

Extracción de datos de Instagram mediante un lenguaje de programación

Crear tu propio raspador de datos de Instagram puede ser la solución más eficiente si tus requisitos no son típicos y tienes un buen programa Conocimientos de programación o contar con un desarrollador en tu equipo. Puedes lograrlo usando cualquier lenguaje de programación junto con un framework de raspado web.

Esta guía muestra cómo extraer datos de Instagram con Python y Selenium, un framework de automatización de navegadores.

Importar bibliotecas esenciales:

Para comenzar, importe las bibliotecas básicas, incluyendo Selenium, su controlador web y Selenium-Stealth, para evitar su detección.

deselenioimportarWebDriver
deselenium.webdriver.common.byimportar Por
de imprimir importar pprint
importar json
deselenium_stealthimportaciónsigilo


La biblioteca pprint nos ayudará a imprimir el resultado de forma ordenada para una mayor legibilidad.

Recopilar nombres de usuario de Instagram:

Crea una lista y añade los nombres de usuario de los perfiles de Instagram que te interesan.

nombres de usuario=["natureismetal","miteuniversity", "samstailor", "therock"]
proxy="servidor:puerto"
salida={}


La variable de salida es un diccionario que usaremos para almacenar los resultados.

Define la función principal:

La función principal recorrerá la lista de nombres de usuario uno a la vez y llamará a la función de raspado en cada nombre de usuario.

defprincipal():
para nombre-de-usuario en nombres de usuario:
scrape(nombre de usuario)


Define una función para administrar la configuración del navegador:

Esta función ajustará la configuración del navegador antes de cada solicitud de raspado para agregar anonimato y evitar la detección de Instagram. Estos cambios incluyen la rotación de servidores proxy, la configuración de Selenium-Stealth y la creación de un agente de usuario artificial.

def preparar_navegador():
opciones_de_chrome=webdriver.ChromeOptions()
chrome_options.add_argument(f'--proxy-server={proxy}')
chrome_options.add_argument("inicio maximizado")
chrome_options.add_experimental_option("excludeSwitches", ["enable-automation"])
chrome_options.add_experimental_option('useAutomationExtension', Falso)
controlador = webdriver.Chrome(opciones= chrome_options)
stealth(controlador,
user_agent= 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, como Gecko) Chrome/83.0.4103.53 Safari/537.36',
idiomas= ["en-US", "en"],
proveedor= "Google Inc.",
plataforma= "Win32",
webgl_vendor= "Intel Inc.",
renderer= "Intel Iris OpenGL Engine",
arreglar_la_línea= Falso,
ejecutar_en_orígenes_inseguros= Falso,
)
devolverControlador


Define una función para el raspado:

La función scrape() llamada en la función principal toma un único nombre de usuario de Instagram como argumento y crea un Punto final del perfil que usaremos para enviar una solicitud mediante el navegador Chrome realizada mediante la función prepare_browser().

También comprobaremos el estado de la solicitud. Si su solicitud fue redirigida a la página de inicio de sesión, esto significa que la solicitud falló. Mientras que si la re no login string, la solicitud fue exitosa y el resultado se analizará como JSON y se enviará a la función parse_data() junto con el nombre de usuario.

defraspar(nombre-de-usuario):


url=f'https://instagram.com/{nombre-de-usuario}/?__a=1&__d=dis'
chrome=preparar_navegador()
chrome.get(url)
imprimir(f"Intentando:{chrome.current_url}")


si "iniciar sesión" en chrome.url_actual:
imprimir("Error al iniciar sesión/redirección")
chrome.quit()

de lo contrario:
imprimir ("Éxito")
resp_body = chrome.find_element(By.TAG_NAME, "cuerpo").text
data_json = json.loads(resp_body)
datos_usuario = datos_json['graphql']['usuario']
parse_data(nombre-de-usuario, datos-de-usuario)
chrome.quit()


Define la función parse_data():

Esta función analiza los datos JSON del argumento user_data para obtener el campo de datos deseado. En este ejemplo, buscamos el nombre completo del usuario, la categoría de la cuenta, la cantidad de seguidores y los títulos de las publicaciones.

defdatos_de_análisis(nombre_de_usuario, datos_de_usuario):
subtítulos = []


silen(datos_usuario['propietario_del_borde_a_medio_de_línea_de_tiempo']['bordes'])> 0:
para nodo en datos_de_usuario['propietario_del_borde_a_medio_de_línea_de_tiempo']['bordes']:
si len(nodo['nodo']['borde_medio_a_título']['bordes']) > 0:
Si nodo['nodo']['edge_media_to_caption']['bordes'][0]['nodo']['texto']:
captions.append(

nodo['nodo']['edge_media_to_caption']['bordes'][0]['nodo']['texto'])

salida[nombre-usuario] = {
'nombre': datos_de_usuario['nombre_completo'],
'categoría': datos_de_usuario['nombre_de_categoría'],
'seguidores': datos_de_usuario['edge_seguido_por']['contar'],
'Publicaciones': subtítulos,

}


Escribe el código del controlador:

El código del controlador inicia el proceso de raspado, extrae los datos en la variable de salida y llama a la función pprint() para mostrarlos de forma atractiva.

si __nombre__ == '__principal__':
principal()
pprint(salida)


Omitir la detección con el navegador AdsPower Antidetect


Aquí es donde AdsPower resulta útil, ya que te ayuda a mantener un perfil bajo al extraer datos de Instagram que podrían infringir las políticas de Instagram.AdsPower utiliza técnicas antidetección como la rotación de IP y la limitación de velocidad para evadir las medidas antirrastreo.

Así que la próxima vez que uses una herramienta sin código o API de Instagram no oficiales, asegúrate de Use el navegador antidetección de AdsPower para evitar la detección.

Conclusión

Instagram solo permite el scraping de los datos disponibles públicamente en su plataforma, para la cual proporciona dos API. Sin embargo, Estas API ofrecen un nivel muy básico de scraping sin permitirte extraer datos de Instagram que sean realmente relevantes.

Esto nos deja con raspadores web de terceros o con la posibilidad de crear su propio raspador utilizando lenguajes de programación. Sin embargo, raspar Instagram nos Usar estos métodos no oficiales tiene posibilidades de ser detectado, así que asegúrate de usar el navegador antidetección AdsPower para mayor protección.

La gente también leyó