2015-07-23 3 views
0

Я использовал String(contentsOfURL: NSURL) для извлечения HTML-файла веб-сайта (сообщение на Instagram как этот https://instagram.com/p/5FcnSATPa4/ в моем случае). Мне нужна информация о почте, например, сколько понравилось сообщению или местоположение, связанное с фотографией.Parsing исходный HTML-файл с использованием Swift

Эта строка HTML-файла, например, содержит часть необходимой мне информации \"location\":{\"has_public_page\":true,\"name\":\"Kaputa\\u015f Beach\". Вопрос в том, как я могу извлечь имя «Kaputa Beach»?

спасибо.

ответ

4

Почему бы не использовать фактический API Instagram? https://instagram.com/developer/endpoints/likes/

Зачем тратить время на разбор HTML, когда вы получаете эту информацию прямо из источника.

Вы можете разрешить с помощью OAuth (https://github.com/dongri/OAuthSwift)

Вы можете получить список пользователей, которые понравившееся изображение, используя приведенный ниже вызов, то можно вывести «как» считать от этого:

https://api.instagram.com/v1/media/{media-id}/likes?access_token=ACCESS-TOKEN

в качестве альтернативы, если вы хотите получить больше информации о средствах массовой информации, вы можете использовать следующую конечную точку:

https://api.instagram.com/v1/media/{media-id}?access_token=ACCESS-TOKEN

Подробности здесь: https://instagram.com/developer/endpoints/media/#get_media

Вот пример быстрого приложения с помощью API Instagram, вы можете проверить проект на GitHub, чтобы увидеть, как это работает.

https://maniacdev.com/2015/01/example-a-swift-based-ios-instagram-photo-downloader-and-browser


EDIT:

Вам не нужно для аутентификации в качестве конкретного пользователя, чтобы использовать методы вам нужно.

  1. Войти в Instagram в себя: https://instagram.com/accounts/login/

  2. Регистрация нового клиента: https://instagram.com/developer/clients/manage/

  3. Используйте свой новый идентификатор клиента с запросами вместо вашего маркера доступа: https://api.instagram.com/v1/media/{media-id}/likes?client_id={CLIENT_ID} или https://api.instagram.com/v1/media/shortcode/5FcnSATPa4?client_id={CLIENT_ID}

Вы можете сделать до 5000 запросов в час с вашим идентификатором клиента.

Вы можете играть с Instagram API здесь: https://apigee.com/console/instagram

Только не забудьте использовать ваш идентификатор клиента.

+0

Конечно, это возможность.Однако, чтобы воспользоваться API Instagram, мне нужно, чтобы пользователи входили в систему со своими учетными записями Instagram, в то время как в моем приложении крайне важно, чтобы этого не произошло. Вот почему мне нужно жестоко разобрать HTML ... Для получения некоторой информации, связанной с этим сообщением, я использую эти функции внедрения, которые не требуют входа в https://instagram.com/developer/embedding/, но таким образом я просто получаю название фотографии и файл изображения. Место, дата загрузки и любимые файлы недоступны ... – lucamegh

+0

См. Правки, вам не нужно, чтобы каждый пользователь регистрировался. Вы можете зарегистрировать свое приложение и использовать идентификатор клиента для выполнения большинства запросов. – Neaox