Как веб-очистить пользователей, которым понравилась картинка в Instagram? - PullRequest
2 голосов
/ 06 июля 2019

Как бы я собирал данные такого рода из Instagram для проекта по поиску в сети, я попытался получить их с помощью Beautifulsoup и запрашивал истинный анализ всей страницы: но это не работает

import requests
from bs4 import BeautifulSoup
usrs=[]
soup=BeautifulSoup(requests.get("https://www.instagram.com/p/Bziq7f2C-jM/").content,'html.parser')
elem1=soup.find_all('div',class_="EtaWk")
#elem1 contains all the usernames within it 
if elem1:
    elem2=elem1.find('ul',class_="XQXOT")
    if elem2:
        xelems=elem2.findAll('ul',class_="Mr508")
        for i in range(len(xelems)):
            lis=xelems[i].find('a',class_="FPmhX notranslate TlrDj",title=True)
            usrs.append(a["title"])

1 Ответ

1 голос
/ 08 июля 2019

Если вы не обязаны использовать Beautifulsoup и анализировать ответ HTML самостоятельно, есть Instaloader , библиотека Python, которая позволяет очень легко получить доступ к Instagram.После выполнения pip install instaloader для его установки вы можете выполнить

import instaloader
L = instaloader.Instaloader()
Post = instaloader.Post.from_shortcode(L.context, 'Bziq7f2C-jM')

Затем Post.get_likes() возвращает Итератор для профилей, которым понравилась публикация, поэтому для печати всех имен пользователей вы можете выполнить

for like in Post.get_likes():
    print(like.username)

Помимо того, что это простое решение, у Instaloader есть и то преимущество, что он автоматически обрабатывает ограничение скорости и поддерживает обработку входа в систему и доступ к сообщениям частных профилей.

...