Duplicador de raspador de Instagram con Selenium.
Estoy tratando de hacer web scraping en Instagram por medio del hashtag en este caso perro utilizando Selenium
1. realizar scroll para cargar las imágenes
2. obtener los enlaces de los posts de las imágenes cargadas
pero me di cuenta de que la mayoría de los enlaces están repetidos (últimas 3 líneas). No sé cuál es el problema, incluso intenté muchas bibliotecas para hacer web scraping en Instagram, pero todas ellas dan errores o no realizan la búsqueda por hashtag.
Estoy intentando hacer web scraping en Instagram para obtener datos de imágenes para mi modelo de clasificación de Aprendizaje Automático profundo.
Además, me gustaría saber si hay mejores métodos para hacer web scraping en Instagram.
import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains as AC
driver = webdriver.Edge("msedgedriver.exe")
driver.get("https://www.instagram.com")
tag = "perro"
numberOfScrolls = 70
Sección de inicio de sesión
time.sleep(3)
nombre_de_usuario = driver.find_element_by_xpath('//*[@id="loginForm"]/div/div[1]/div/label/input')
nombre_de_usuario.send_keys("miusuario")
campo_de_contraseña = driver.find_element_by_xpath('//*[@id="loginForm"]/div/div[2]/div/label/input')
campo_de_contraseña.send_keys("micontraseña")
time.sleep(1)
driver.find_element_by_xpath('//*[@id="loginForm"]/div/div[3]').click()
time.sleep(5)
Sección de web scraping
enlace = "https://www.instagram.com/explore/tags/" + tag
driver.get(enlace)
time.sleep(5)
enlaces = []
for i in range(numberOfScrolls):
AC(driver).send_keys(Keys.END).perform() # scroll hasta el final de la página
time.sleep(1)
for x in range(1, 8):
try:
fila = driver.find_element_by_xpath('//*[@id="react-root"]/section/main/article/div[2]/div/div[' + str(i) + ']')
fila = fila.find_elements_by_tag_name("a")
for elemento in fila:
if elemento.get_attribute("href") is not None:
print(elemento.get_attribute("href"))
enlaces.append(elemento.get_attribute("href"))
except:
continue
print(len(enlaces))
enlaces = list(set(enlaces))
print(len(enlaces))
davy.ai
Solución para Rastrear Instagram por Hash tag “Dog”
El siguiente código de Python se utiliza para rastrear las publicaciones de Instagram asociadas al hashtag “dog”. El objetivo de la extracción de datos es recopilar datos de imagen para un modelo de Aprendizaje Profundo que pueda clasificar imágenes de perros.
Pasos para rastrear Instagram en busca de imágenes asociadas al hash tag “Dog”
Nota: El problema de los enlaces repetidos puede producirse si se desplaza la página más de lo necesario.
Código Fuente
Salida
La salida de este código Python debe ser una lista de enlaces a publicaciones de Instagram para el hashtag “dog”. La primera instrucción de impresión muestra el número de enlaces encontrados, mientras que la segunda muestra el número de enlaces después de la deduplicación.
La variable “numberOfScrolls” controla cuántas veces se desplaza la página web. Un valor mayor para esta variable puede resultar en más enlaces extraídos.
Espero que esta solución para rastrear Instagram sea útil. Si encuentras algún problema o tienes alguna pregunta, ¡no dudes en comentar!