Внимательно посмотрите на json, который вы получаете.
Перейдите к graphql -> hashtag -> edge_hashtag_to_media -> page_info -> end_cursor
Это идентификатор, который вы должны использовать для указания следующей партии носителей, например:
https://www.instagram.com/explore/tags/perfume/?__a=1&max_id=QVFDNWJDZnpGbElpdEV5Q19aaldYWUsxZnc1YUd0Z21yNUZsOWw4V2NxX05ZWnZjT2pRb3lrY29ocDJnM0VNallUWGZVeDIxVURnUzltdHpBR1A1a0VRNw==
Вы можете повторить этот процесс, чтобы получить больше носителей для запрошенного хэштега.
Наивный пример с запросами (python3) для извлечения первых 10 пакетов.
import requests
import json
from time import sleep
max_id = ''
base_url = "https://www.instagram.com/explore/tags/perfume/?__a=1"
for i in range(0, 10):
sleep(2) # Be polite.
if max_id:
url = base_url + f"&max_id={max_id}"
else:
url = base_url
print(f"Requesting {url}")
response = requests.get(url)
response = json.loads(response.text)
try:
max_id = response['graphql']['hashtag']['edge_hashtag_to_media']['page_info']['end_cursor']
print(f"New cursor is {max_id}")
except KeyError:
print("There's no next page!")
break
Как сказано в комментарии, будьте вежливы. Instagram заблокирует вас, если вы снимаете слишком много запросов в секунду.