Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как реализовать веб скрапинг инстаграм (https://javascript.ru/forum/misc/71423-kak-realizovat-veb-skraping-instagram.html)

Gtfuc 17.11.2017 15:52

Как реализовать веб скрапинг инстаграм
 
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/
...........

jerseybb 18.11.2017 15:42

Получаем список городов:
Нажимаем "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 уйдет, чем на реализацию первого варианта.

Gtfuc 19.11.2017 16:46

получает первый 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”},

jerseybb 20.11.2017 20:21

let locationIDs = entry_data.LocationsDirectoryPage[0].location_list.map(item => item.id)


Часовой пояс GMT +3, время: 19:04.