Как наскрести лайки на инстаграм - PullRequest
0 голосов
/ 22 мая 2019

Я получил код для очистки данных Instagram. Это царапает подписчиков, подписчиков и посты, но мне все еще нужно почистить лайки на постах. Есть ли способ убрать лайки без инстаграм от API?

Вот код для очистки, мне все еще нужно очистить лайки здесь.

import requests
import urllib.request
import urllib.parse
import urllib.error
from bs4 import BeautifulSoup
import ssl

class Insta_Info_Scraper:

    def getinfo(self, url):
        html = urllib.request.urlopen(url, context=self.ctx).read()
        soup = BeautifulSoup(html, 'html.parser')
        data = soup.find_all('meta', attrs={'property': 'og:description'
                             })
        text = data[0].get('content').split()
        user = '%s %s %s' % (text[-3], text[-2], text[-1])
        followers = text[0]
        following = text[2]
        posts = text[4]
        info={}
        info["User"] = user
        info["Followers"] = followers
        info["Following"] = following
        info["Posts"] = posts
        self.info_arr.append(info)

1 Ответ

1 голос
/ 22 мая 2019

Учитывая гипотезу, что вы уже собрали несколько постов, вы можете легко получить лайки, выполнив следующее:

posts = ['BxuiTcLnTWO','BxkKDnCngp0','BxiNq5-nxOj','Bxhr01unQ11']

for post in posts:
    post_url = 'https://www.instagram.com/p/{}/'.format(post)
    response = requests.get(post_url.format(post))
    soup = BeautifulSoup(response.content)
    sharedData = soup.find('script', text=re.compile('"mainEntityofPage"')).text
    likes = json.loads(sharedData.strip())['interactionStatistic']['userInteractionCount']
    print(post_url, '-', likes, 'likes')    

Выход:

https://www.instagram.com/p/BxuiTcLnTWO/ - 2243387 лайков

https://www.instagram.com/p/BxkKDnCngp0/ - 6278351 лайк

https://www.instagram.com/p/BxiNq5-nxOj/ - 1445806 лайков

https://www.instagram.com/p/Bxhr01unQ11/ - 1250237 лайков

...