@ilyakmet

Как пролистать страницу сайта Instagram до конца?

получаем страницу с фото по тегу: https://www.instagram.com/explore/tags/{tag_without_#}

Просмотреть все данные можно только скроллингом, никакой нумерации страниц и тд.

Написал вот такой скрипт:
from selenium import webdriver
import time, random

tag = '' #input tag here without {#}
timer = 30

browser = webdriver.Firefox()
browser.get('https://www.instagram.com/explore/tags/' + tag + '/')
browser.find_element_by_tag_name('html')
print 'CLICK DOWNLOAD MORE! you have %d sec' % timer #click download more
time.sleep(timer)
t = 0
count = 0
while True:
	print 'RUN!'
	while t <= 125:
		browser.execute_script("window.scrollTo(0, document.body.scrollHeight);")
		time.sleep(random.uniform(1,1.5))
		browser.execute_script("window.scrollTo(0, 0);")
		time.sleep(random.uniform(1,1.5))
		t += 1
		count += 1
		print 'total: ~' + str(count * 4)
	t = 0
	print 'SLEEP 1h'
	time.sleep(3600)


До этого пытался экспериментировать с таймерами, но пока что не удалось добраться до конца страницы (instagrtam тормозит загрузку). Максимум получал 15к фото.
Какие есть мысли?
  • Вопрос задан
  • 24803 просмотра
Пригласить эксперта
Ответы на вопрос 1
Открой консоль разработчика (Ctrl + Shift + i в хроме) и посмотри на вкладке Network какие запросы отправляет сайт, когда ты жмешь кнопку "Загрузить еще", а отправляет он
q=ig_hashtag(HASHTAG)+%7B+media.after(J0HV59zAwAAAF0HV59y8AAAAFkYA%2C+11)+%7B%0A++count%2C%0A++nodes+%7B%0A++++caption%2C%0A++++code%2C%0A++++comments+%7B%0A++++++count%0A++++%7D%2C%0A++++date%2C%0A++++dimensions+%7B%0A++++++height%2C%0A++++++width%0A++++%7D%2C%0A++++display_src%2C%0A++++id%2C%0A++++is_video%2C%0A++++likes+%7B%0A++++++count%0A++++%7D%2C%0A++++owner+%7B%0A++++++id%0A++++%7D%2C%0A++++thumbnail_src%2C%0A++++video_views%0A++%7D%2C%0A++page_info%0A%7D%0A+%7D&ref=tags%3A%3Ashow
на хост https://www.instagram.com/query/, параметр стоящий в media.after, подозреваю, айдишник самого позднего фото в текущей выборке
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы