Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.11.2017, 15:52
Интересующийся
Отправить личное сообщение для Gtfuc Посмотреть профиль Найти все сообщения от Gtfuc
 
Регистрация: 22.08.2017
Сообщений: 27

Как реализовать веб скрапинг инстаграм
https://www.instagram.com/explore/locations/RU/russia/У меня есть геолокация Россия, необходимо получить список геоданных всех городов Россиию К примеру: страна Russia| город Dorogomilovo - должен получиться список:
https://www.instagram.com/explore/locations/213158406/
https://www.instagram.com/explore/locations/405229172/
https://www.instagram.com/explore/locations/228423866/
https://www.instagram.com/explore/locations/34177271/
https://www.instagram.com/explore/locations/4175666/
https://www.instagram.com/explore/locations/24391232/
https://www.instagram.com/explore/locations/217099357/
https://www.instagram.com/explore/locations/2931644/
https://www.instagram.com/explore/locations/87678/
...........
Ответить с цитированием
  #2 (permalink)  
Старый 18.11.2017, 15:42
Интересующийся
Отправить личное сообщение для jerseybb Посмотреть профиль Найти все сообщения от jerseybb
 
Регистрация: 17.11.2017
Сообщений: 10

Получаем список городов:
Нажимаем "See more" внизу страницы, смотрим endpoint и параметры POST-запроса (page) во вкладке Network (devtools) (filter: /locations/ + XHR). Парсим полученный json. Запрашиваем следующую страницу по тому же endpoint с новым page id (next_page предыдущего ответа) до тех пор, пока next_page в ответе не будет равен null.

Получаем список мест для каждого города:
Нажимаем на город с открытой вкладкой Network (filter: /locations/ + XHR). Смотрим endpoint, повторяем то же самое, что делали для получения списка городов. Все это по циклу из ids списка городов, полученного ранее.

Возможно, через официальное API выйдет быстрее, если не упереться в лимиты. Но, на мой взгляд, так как процедура разовая и список более-менее статичен, больше времени на изучение самого API уйдет, чем на реализацию первого варианта.
Ответить с цитированием
  #3 (permalink)  
Старый 19.11.2017, 16:46
Интересующийся
Отправить личное сообщение для Gtfuc Посмотреть профиль Найти все сообщения от Gtfuc
 
Регистрация: 22.08.2017
Сообщений: 27

получает первый id, как написать выражение, чтобы получить все id?

Цитата:
[‘entry_data’][‘LocationsDirectoryPage’][0][‘location_list’][0][‘id’]
Цитата:
“entry_data”: {“LocationsDirectoryPage”: [{“city_directory_page”: true, “country_info”: {“id”: “US”, “name”: “United States”, “slug”: “united-states”}, “city_info”: {“id”: “c2490299”, “name”: “New York”, “slug”: “new-york-united-states”}, “location_list”: [{“id”: “212988663”, “name”: “New York, New York”, “slug”: “new-york-new-york”}, {“id”: “49695104”, “name”: “Brooklyn Bridge”, “slug”: “brooklyn-bridge”}, {“id”: “1553715”, “name”: “Barclays Center”, “slug”: “barclays-center”}, {“id”: “34648”, “name”: “National September 11 Memorial \u0026 Museum”, “slug”: “national-september-11-memorial-museum”}, {“id”: “1495”, “name”: “Washington Square Park”, “slug”: “washington-square-park”}, {“id”: “504854015”, “name”: “SoHo, Manhattan”, “slug”: “soho-manhattan”},
Ответить с цитированием
  #4 (permalink)  
Старый 20.11.2017, 20:21
Интересующийся
Отправить личное сообщение для jerseybb Посмотреть профиль Найти все сообщения от jerseybb
 
Регистрация: 17.11.2017
Сообщений: 10

let locationIDs = entry_data.LocationsDirectoryPage[0].location_list.map(item => item.id)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как реализовать динамичное добавление тегов modelfak23 jQuery 1 19.06.2015 14:27
Как правильно реализовать такой функционал? Julian Общие вопросы Javascript 3 16.01.2015 12:34
NotedOK.com: Быстрые записи в веб, сохраняются как текстовые файлы в Dropbox artemkv Ваши сайты и скрипты 0 06.12.2014 03:16
Как правильно реализовать наследование? Universe Общие вопросы Javascript 9 10.04.2014 16:05
Как реализовать? Fliand Элементы интерфейса 4 22.08.2009 19:47