Показать сообщение отдельно
  #3 (permalink)  
Старый 18.11.2018, 15:25
Новичок на форуме
Отправить личное сообщение для mystica Посмотреть профиль Найти все сообщения от mystica
 
Регистрация: 18.11.2018
Сообщений: 8

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

'use strict';
var InstagramPrivateAPI = {};

InstagramPrivateAPI = {};
InstagramPrivateAPI.V1 = require(__dirname + '/client/v1');
InstagramPrivateAPI.Helpers = require(__dirname + '/helpers');
var acc = require(__dirname + "/client/v1/account");
var med = require(__dirname + "/client/v1/media")

var Promise = require('../bluebird');
var _ = require('../lodash/');

module.exports = InstagramPrivateAPI;

var Client = require('instagram-private-api').V1;
var device = new Client.Device('maksgmn');
var storage = new Client.CookieFileStorage(__dirname + '/cookies/maksgmn.json');
var session = new Client.Session(device, storage);


acc.searchForUser(session, 'kaigreene') //поиск id пользователя
    .then(function(profile) {
        return profile.id
    })
    .then(function(someId) {  //получение промиса lenta
        var feed = new Client.Feed.UserMedia(session, someId);
        var lenta = Promise.mapSeries(_.range(0, 1), function() {
            return feed.get();
        }).then(function(lenta) {
        	return {id: someId, fd : lenta}
        })
        return lenta
    })
    .then(function(results) {  //обработка промиса и получение ленты пользователя
        // result should be Media[][]
        var media = _.flatten(results.fd);
        var urls = _.map(media, function(medium) {
            return medium.params.imageVersions2.candidates[0].url
        })
        return {id : results.id, links : urls}
    })
    .then(function(mediaAndId) {
    	acc = acc.getById(session, mediaAndId.id)
    		.then(function(account) {
    			//console.log(account.params)
    			let avatar = account.params.profilePicUrl;
    			let fullName = account.params.fullName;
    			let bio = account.params.biography;
    			let media0 = mediaAndId.links[0];
    			let media1 = mediaAndId.links[1];
    			let media2 = mediaAndId.links[2];
    			let media3 = mediaAndId.links[3];
    			let media4 = mediaAndId.links[4];

    			console.log(avatar);
    			console.log(fullName);
    			console.log(bio);
    			console.log(media0);
    			console.log(media1);
    			console.log(media2);
    			console.log(media3);
    			console.log(media4);
    		})
    })
Ответить с цитированием