Подумал, что есть еще второй вариант, который будет намного медленнее, особенно если у пользователя 100+ моделей, но избавит от необходимости использовать сторонние сервисы. Через библиотеку Selenium можно работать непосредственно с браузером пользователя, тогда пользователь будет сам логиниться и вводить свои данные через стандартную форму в браузере. Далее при пользователе скрипт начнет последовательно перебирать все страницы, с которых нужно собрать информацию. Опять же потребуется время, чтобы переписать и протестировать скрипт в таком варианте. Но хотелось бы, прежде оценить потребность в этих доработках, насколько вообще стоит этим заниматься.
Так это и должен быть основной вариант. Вы же понимаете, что никто в своём уме не согласится скармливать неизвестному экзешнику свою учётку.
А в целом я не знаю, почему сам сайт не даст такую статистику в профиле юзера. Уверен там её выше крыши и два прицепа ещё.
Такой вариант подходит для решения разовых задач, но навскидку пользовательский JS-скрипт не поможет решить нашу задачу, т.к. в формате обсуждаемого варианта мы храним и обрабатываем статистику локально на компе пользователя. Если мы будем запускать JS-скрипт в залогиненной сессии, мы не сможем брать информацию из локальных .json файлов, в которых хранится информация от предыдущих сессий. Аналогичная проблема встает и с передачей собранной статистики обратно на комп пользователя для сохранения в .json, обработки и выгрузки в .csv.
Selenium под phyton будет делать все примерно то же самое, но только с компа пользователя и без костылей, которые нас ожидают в случае с JS.
Выложу тут обновленную версию скрипта, когда будет готова.
Цитата sergeykashanin:
Может стоит предложить этот скрипт разработчикам, чтоб они его в ЛК интегрировали?
буду рад взаимодействовать с администрацией сайта, если будет какая-то обратная связь и работать в озвученных условиях, а пока - решаем вопрос, как можем
Для подобной задачи надо экстеншен для браузера писать ну или на край заставить юзера раз в n месяцев открыть dev tools (F12) и скопировать PHPSESSID куку для того, чтобы софтина могла залогиниться и парсить данные из аккаунта.
заставить юзера раз в n месяцев открыть dev tools (F12) и скопировать PHPSESSID куку
Да что вы! Тут разгадывание капчи бурю негодования вызвало, а вы про поиск и копирование пользователем данных из dev tools своими руками говорите. Facebook по F12 большими красными буквами предупреждает, что это опасно.
Кроме того, расширение для браузера столкнется с теми же проблемами, что и скрипт на JS, которые я описал выше – невозможность обновлять локальные файлы на пользовательском компе (вернее это возможно, но это будет уже нарушение правил безопасности браузера). А хранение данных статистики пользователей где-то кроме их компа я даже не рассматриваю по ряду очевидных причин.
На самом деле скрипт уже переписан на selenium и отлично у меня работает, так что скоро выложу его тут для тестирования, осталось только видос записать с демонстрацией работы.
На самом деле скрипт уже переписан на selenium и отлично у меня работает, так что скоро выложу его тут для тестирования, осталось только видос записать с демонстрацией работы.
видно что даже не интересовались вопросом прежде чем сделать выводы, есть Client-side storage как раз для JS, есть также возможность сгенерироывть файл предложить узеру сохранить в файл без никаких плагинов все уже в браузерах
Не хочу ни с кем соревноваться и на звание гуру в JS не претендую. Но спасибо за ваше участие, приятно, что все большей людей предлагают разные варианты решения задачи.
Речь шла именно об автономном сохранении файлов самой софтиной по заданной структуре папок. Я понимаю, что пользователь может и сам указать путь для сохранения файла и этот вариант удобен в случае, если нужно сохранить один-два отдельных файла. Но логика моего скрипта построена так, что он анализирует локальные .json файлы, сохраненные ранее, затем сохраняет новый .json и после этого снова перебирает локальные .json-ы, чтобы сохранить финальный .csv. Есть еще ряд сценариев, которые также, скорее всего, вызовут трудности. Можете заглянуть в мой Github за подробностями, если вам действительно интересно. Соответственно пользователю нужно будет указывать пути и расположения .json-ов при каждой итерации или обращении скрипта к файлам. А т.к. в перспективе возможно сохранение и добавление в .csv имиджей для каждой модели, которые тоже нужно будет сначала сохранить локально, генерирование графиков и проч., то и для этого также потребуются доп. действия от пользователя. Как по мне, то все это очень сложно. Пока мне эта схема видится тупиковой.
Поэтому на данный момент скрипт написан именно на python. Да, есть свои нюансы, но пока я считаю, что для парсинга/анализа это оптимальный вариант.
вот если бы ты придумал статистику у кого что лучше продается - и самое важное "КАК" ото было бы веселее)Я бы даже сказал саму идею - а не написание - я бы на питончике тебе бы нашкрябал бы кодишку.. А так штука 50:50. Он то систематизирует все продажи в картину - но ведь согласишь куда интересней что лучше продаеться у соседа)
или еще лучше) статиску по запросам в поисковике)Запросы - днязапросы - неделизапросы - месяца ))
Вот только как будут сравниваться продажи моделей загруженных в разный период времени. Первая модель продавалась с 50% отчислениями, а вторая к примеру с 55% и бОльшая сумма с ее продаж может ввести в заблужение.
Хотел сначала затереть цифры в видео, но без них, на мой взгляд, смысл демонстрации убивается напрочь. Плюс, подумал я, может быть, сделаю приятное кому-то, кто так хотел посмотреть на чужую статистику продаж. Мне особо хвастаться не чем, но с драной овцы – хоть шерсти клок )
Еще раз в двух словах основное по работе скрипта:
1. Запускаем скрипт
2. Логинимся в браузере, нажимаем букву ‘y’ и затем Enter
3. Скрипт собирает статистику продаж из вашего аккаунта
4. В папке “Result” cохраняется .csv файл со всей собранной информацией
5. При повторном запуске скрипт сравнивает сохраненное ранее с текущими обновлениями в аккаунте и создает новый файл с новой датой. (если скрипт повторно запущен в этот же день, то .csv с текущей датой просто перезаписывается)
* теперь берегите папку “dates”, так в ней хранится вся ваша собранная ранее статистика. Перед созданием .csv файлов скрипт анализирует именно ее.
да нет, конечно. Просто тогда во-первых: статистика продаж опять рассчитается исходя из усредненных значений, а не точных; второй момент: нельзя будет составить сравнительную характеристику продаж на 3ddd и 3dsky за предыдущий период. Я планирую добавить такой показатель для каждой модели в ближайшее время
Оно вроде интересно, но вроде и бесполезно, потому что текущие данные очень неточные.
Точными их можно сделать, если спарсить и работать с данными, во вкладке "История операций", там при клике по транзакции открывается таблица с точными данными, датой продаж и ценой продажи.
Я веду полный учет по всем стокам с 2012 года, правда все это в экселе, но есть ряд проблем, которые я пока не решил, просто потому что эксель уже плачет, когда я его заставляю все считать.
Может у Вас есть идеи, в чем можно реализовать учет большого количества моделей? Я вот на Access смотрю, но там надо мне разбираться.
Точными их можно сделать, если спарсить и работать с данными, во вкладке "История операций", там при клике по транзакции открывается таблица с точными данными, датой продаж и ценой продажи.
Вау. Спасибо вам за этот пост, вы мне просто глаза открыли (вероятно, не только мне). Я, честно, не знал, что все продажи по всем моделям хранятся на сайте в таком виде. Я представляю, каким дьявольским смехом смеялись админы, когда наблюдали за нашими потугами рассчитать ранние продажи.
Что ж. Придется снова переписать скрипт, но уже основываясь на точных данных продаж всех моделей.
А по поводу скорости работы excel, думаю, проблема решится, т.к. все цифры в этом случае у нас будет считать python, а не excel. Кроме того, .csv сам по себе легче, чем .xlsx, поэтому открываться тоже быстрее будет.
эксель уже плачет, когда я его заставляю все считать.
Чтож у вас за объем данных такой? Или может какие-то формулы сильно сложные?
Много тысяч продаж, на разных стоках, по каждой модели идет расчет ее стоимости, при этом сеты разбиты пропорционально на индивидуальные модели, в общем, у меня по модели график продаж можно увидеть, окупаемость, потому что я также работаю по таймеру и на каждые модели у меня есть затраченное время, также у меня часть работы выполнялась помощницей и она с продаж совместных моделей имеет свой процент, поэтому и процент высчитывается. Также я считаю комиссии и чистую прибыль, короче, там много всего. Может показаться, что это все пустая трата времени и тут я промолчу, но на все это я потратил совсем немного времени, а внесение данных вручную без парсера - дело двух минут для каждого стока и это обычно я делаю в день выплаты. К тому же я еще с двумя организациями работаю по другой деятельности, там тоже учет выполненного, авансы, зп, в общем, ненавижу бухгалтерию, но пришлось ее вести.
все транзакции - это активные ссылки, внутрь проваливаетесь и там продажи будут
примерно 200 линий JS скрипт с графиками и парсерами, пока что не доделанный но уже рабочий,
и у меня к сожеленю только одна модель на продаже но должно работать хоть с сотнями,
разделение по цветам и фильтр вроде тоже есть, вертикальные маркеры это сума и время вывод бабосов,
если есть желание допилить отпишитесь я уже на это потратил часиков 4 и опоздал в паб
) Нормально. 4 Часа, ну даже если увеличить срок в 10 раз на тесты, баги, допиливания, что-то мне говорит, что администрация просто не делает статистику для пользователей, не потому что сложно, а потому что потому.