Я пытаюсь очистить Instagram, используя Python и Selenium. Цель состоит в том, чтобы получить URL всех постов, количество комментариев, количество лайков и т. Д. c.
Мне удалось очистить некоторые данные, но по какой-то причине на странице не отображаются более 12 последних записей. Я не могу найти способ показать все остальные записи. Я даже попытался прокрутить страницу вниз и затем прочитать страницу, но она дает только 12. Я проверил источник и не могу найти, как получить остальные записи. Похоже, что 12 записей встроены в тег script, и я больше нигде этого не вижу.
driver = webdriver.Chrome('chromedriver.exe')
driver.get('https://www.instagram.com/fazeapparel/?hl=en')
source = driver.page_source
data=bs(source, 'html.parser')
body = data.find('body')
script = body.find('script', text=lambda t: t.startswith('window._sharedData'))
page_json = script.text.split(' = ', 1)[1].rstrip(';')
data = json.loads(page_json)
Используя полученные данные, я смог найти информацию и собрать ее.
for each in data['entry_data']['ProfilePage'][0]['graphql']['user']['edge_owner_to_timeline_media']['edges']:
link = 'https://www.instagram.com'+'/p/'+each['node']['shortcode']+'/'
posttext = each['node']['edge_media_to_caption']['edges'][0]['node']['text'].replace('\n','')
comments = each['node']['edge_media_to_comment']['count']
likes = each['node']['edge_liked_by']['count']
postimage = each['node']['thumbnail_src']
isvideo = each['node']['is_video']
postdate = time.strftime('%Y %b %d %H:%M:%S', time.localtime(each['node']['taken_at_timestamp']))
links.append([link, posttext, comments, likes, postimage, isvideo, postdate])
Я даже создал функцию прокрутки для прокрутки окна, а затем очистки данных, но он возвращает только 12.
Можно ли как-нибудь получить более 12 записей? В этом аккаунте 46 записей, и я не могу найти его нигде в коде. Пожалуйста, помогите!
Редактировать: Я думаю, что данные встроены в React, поэтому не отображаются все сообщения