VK_execute

Для всех страждущих наконец выкладываю нормальные примеры использования VK Script: https://github.com/triaglesis/vk_execute Там все мои примеры и по работе и просто тестовые. Самый быстрый вот такого плана, без внутреннего парсинга. Как только добавляешь внутрь вк скрипта какой-то проверочный код – КПД резко падает. Мой совет – вк_скрипт только для сбора всего “сырого” – дальше обрабатывать уже на сереверной стороне. var posts_cnt; var posts; var post_list = []; var offset_posts = Args.global_offset_posts; offset_posts = parseInt(offset_posts); // var offset_posts = 0; var run_count = 0; var iter_count = 20; while (iter_count > run_count ) {posts = API.wall.get( {“owner_id”:(Args.owner_id), “domain”:(Args.domain), “offset”:(offset_posts), “count”:”100″, “filter”:”all”, “extended”:”0″, “v”:”5.42″} ); post_list.push(posts.items); offset_posts = offset_posts + 100; run_count = run_count + 1; posts_cnt = posts.count; }; return {“posts_cnt”: posts_cnt,Short Read more…

vk execute wall get comments automation

Как использовать vk execute для получения всех комментариев со всех постов? Как и обещал, пришло время выложить исходники (исподники) скриптов, которые я использую для собирания комментов с постов в группе. Суть в следующем, у вас есть группа, в которой есть посты, в которых есть комментарии. Вначале вы отбираете ТОЛЬКО те посты, в которых комментов больше нуля и формируете их них список, разделенный запятыми, это важно, так как метод вк не позволяет отправлять сразу список, поэтому мы его “обманем”. Порядок действий такой: получить все посты (wall.get) -> python отобрать посты, где комментарии > 0; -> python соорудить array из id постов, перевести его в строку: ‘11111,2222,3333,4444‘; -> python передать строку в execute-> python собрать с каждого поста комментарии; -> vk executeShort Read more…

Авто удаление комментариев Вконтакте

Автоматически удалять комментарии оставленные НЕ подписчиков группы? Модуль, который проверяет каждый оставленный комментарий в первых 10 и 50-100 постах на предмет того, оставлен ли он участником группы. Логика действий простая: получить все комментарии с айди (словарь вида: айди_коммента, айди_автора, время_коммента) авторов каждого комментария, проверить есть ли айди автора комментария в списке участников группы, если нет – составить список значений из списка словарей выше, далее запустить луп, в котором удалять каждый комментарий ил списка словарей комментариев, которые оставлены не участниками группы. Данная логика не рассматривает использование vk_execute, но в моем модуле он используется. Возможно, я расскажу именно о vk_script когда-нибудь позднее, когда закончу разработку всех мыслимых модулей, которые запланировал внедрить. На основе: http://www.trianglesis.org.ua/vk-execute-args-python-requests Последнее время работаю над системой, которая выполняет рутинноеShort Read more…

Порядочек в тасках

Так выглядит условный порядок в моих тасках на редмайне, сохраню его, чтобы не потерять. Read more…

Better, then best vk execute and python part. 2

Крайняя степень эффективности. Теперь скрипт не парсит данные, их парсит сам ВК и возвращает мне лишь списки: айди, комменты, репосты и т.п. Для каждого набора свой список – длина списков всегда одинакова. Дело в том, что ВК не позволяет производить более 24-х итераций за раз в vk execute, поэтому, прежде чем отправить списки постов, я дроблю их на группы по 20. Мало того, благодаря вот этому вкраплению: https://toster.ru/q/234399 я теперь могу производить сбор постов по 100 штук по 20 раз за итерацию в Python, то есть на стороне ВК происходит 20 итераций по 100 постов за одну итерацию в python Далее списки zipаются в один большой список списков по 2000 элементов в каждом. Based on: http://www.trianglesis.org.ua/python-i-vk-execute-40-tysyach-postov-za-3-minuty Время выполнения сократилось почти в дваShort Read more…

Python и vk execute = 40 тысяч постов за 3 минуты!

Да, сучка, это Python и vk execute! Собрать 39000 постов за 3 минуты! Закончил очередную партию парсеров, теперь этот парсер умеет делать сбор постов несколько быстрее, чем раньше. В прошлый раз, одними только силами Python while – мне удалось спарсить стену с 39 тысячами постов минимум за 15-20 минут, при этом с вероятностью в 50% поймать timeout error и запускать все заново или дробить сбор постов по дате или кол-ву. Вуаля, упорство и немного логики: Get posts from wall from VK wall.get Posts present: 39143| Runs: 20| Iters: 20| Offset of posts is: 2000 Posts present: 39143| Runs: 20| Iters: 20| Offset of posts is: 4000 Posts present: 39143| Runs: 20| Iters: 20| Offset of posts is: 6000 Posts present:Short Read more…

vk execute VS python while

Итак, финишная прамая на сегодня: скрипт на Python, получающий комментарии из 57 постов за последних 7 дней скрипт Python, отправляющий аргументы для vk execute порциями по 24 поста за раз со sleep(1) – во избежание флуда Дано 57 постов и 797 комментариев под ними. Старый вариант: достается список элементов из таблицы БД где дата элемента между сегодня и -7 дней для каждого изъятого из таблицы элемента с index[0] производится забор комментариев если  index[1] – значение содержит число > 100 – значит в посте больше 100 комментов (ВК не отдает более 100 коментов за один запрос) то запустить while и счетчик, до тех пор, пока индекс итераций(offset_comments) не достигнет числа равному кол-ву комментов(post_com); all_post_comments = [] for item in post_id_comm_list: post_id =Short Read more…

vk execute – parse array or posts and get comments of each

vk execute Родил, наконец-то, следующее детище Франкенштейна: взято за основу: https://toster.ru/q/234399 Этот скрипт позволяет форматировать первый аргумент – строку-список с post_id типа “53288,53303,53306,53288,” (обязательно с запятой вконце, чтобы ометить конец строки) – в понятный для vk execute – array – список айди постов, и потом, до тех пор, пока длина этого списка не будет равна 0 – он будет получать комментарии с каждого элемента этого списка и сохранять их в переменной all_comments и в свою очередь, если кол-во комментов под постов больше 100 – запускать второй while до тех пор, пока счетчик comments_cnt(сколько комментов в посте) не сравняется со счетчиком offset_comments(на сколько сдвигать выборку). Результат обработки 4-х постов с комментами (305, 13, 5, 6): = 329 комментариев var myList = Args.post_id_array_str; varShort Read more…

vk execute

https://vk.com/dev/execute Продолжаю линейку ознакомительных постов на тему “в мире эльфийских языков программирования” или “говнокод – как стиль жизни“. Был вот такой вот пост, который вроде как-бы объяснял как сделать execute при помощи javascript и все такое: http://habrahabr.ru/post/248725/ но язык, которым была написана статья – выглядит настолько эльфийским, я уже не говорю про сраную разметку, которая съехала набикрень просто, как и моя голова, с несозревшими пайтоновскими правилами отступов тоже съехала. Так вот, пытаясь разобраться в этих письменах и отделить зерна от плевел, чтобы наконец понять, как работает этот долбанный vk execute мне пришлось убрать весь говнокод, чтобы найти чистый vk execute, также используя хорошую, но не очевидную, документацию ВК по ссылке выше, я смог родить то, чего пока, мне кажется, никто не родил: Простой иShort Read more…

vk execute method working example on python 3

vk execute   РУС: Сраный интернет и хабрахабры просто завален всякими говнопримерами про vk execute method, каждый круче предыдущего, и никто так и не смог написать нормальный код, я два дня пытался читать тот эльфийский говнокод, в который хабровчанин превратил пайтон, силясь понять что он куда передает, до тех пор, пока не послал все к “%s собачим” и не сделал методом тыка сам. Все оказалось пипецки просто, смотрите сами, код внизу спокойно себе возвращает то, что нам нужно. python(vk execute method): import requests owner_id = “-PAGE_ID” token = ‘TOKEN’ # may use return%20API.wall.get where “%20” is for HTTP encode of space symbol # also can work with regular space sybmol – in my version is working fine r = requests.post(‘https://api.vk.com/method/execute?access_token=’+token+’&code=returnShort Read more…