Подпишитесь на рассылку о самых интересных материалах в мире веб-разработки :)

Как получить все id


(Gtufc) #1

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


(Denis) #2

@post_ids = Post.ids
Получаете все id постов в виде массива


(Gtufc) #3

Можете подробнее объяснить как это будет работать на моем примере?

require 'open-uri'
require 'JSON'
require 'Pry'

def scrape_instagram_city_page()
	begin
		for id in 1..24
			instagram_source = open("https://www.instagram.com/explore/locations/c2490299/new-york-united-states/?page=#{id}").read
			content = JSON.parse(instagram_source.split("window._sharedData = ")[1].split(";</script>")[0])
			p content['entry_data']['LocationsDirectoryPage'][0]['location_list'][0]['id']
		end
	rescue Exception => e
		return nil
	end
end
scrape_instagram_city_page

(Сергей) #4

content['entry_data']['LocationsDirectoryPage'][0]['location_list'].map{ |elm| elm['id']}. location_list это массив хешей.