Автоматическое обновление фотографии профиля Вконтакте / Хабр
Код для обновления фотографии профиля Вконтакте с помощью VK API. Рассмотрим работу с капчей и загрузим код на сервер для автоматического обновления фотографии.
Необходимые библиотеки
Устанавливаем библиотеку vk_api для работы с VK API для Python: pip install vk_api
Пример работы vk_api
import vk_api #Логин (номер телефона) и пароль от профиля ВК vk_session = vk_api.VkApi('login', 'password') vk_session.auth() vk = vk_session.get_api() #Опубликовать пост на своей странице с текстом 'Hello world!' vk.wall.post(message='Hello world!')
Импортируем необходимые библиотеки
import os import time import random import requests import vk_api from vk_api.utils import get_random_id from urllib import urlretrieve
Авторизация
Авторизация в ВК с помощью API
vk_session = vk_api. VkApi('+7999132****', '*********') vk_session.auth() vk = vk_session.get_api()
Загрузка изображений
Загружаем изображения на сервер ВКонтакте.
url = vk.photos.getOwnerPhotoUploadServer()['upload_url']
Для загрузки изображения на сервер ВКонтакте надо передать файл на адрес upload_url, полученный в предыдущем пункте, сформировав POST-запрос с полем photo.
#Изображения находятся в папке images images = os.listdir("images") photo = [] for image in images: request = requests.post(url, files={'photo': open('images/'+image, 'rb')}).json() photo.append(request['photo'])
Сохраним значения сервера и хеша. Они понадобятся для обновления фотографии профиля.
server = request['server'] hash = request['hash']
Обновление фотографии профиля
photos.
saveOwnerPhoto() сохраняет фотографию пользователя.#Выбираем рандомную фотографию и меняем фотографию профиля x = random.randint(0, len(photo)-1) vk.photos.saveOwnerPhoto(server = server, hash = hash, photo = photo[x])
После обновления фотографии на стену добавляется пост с этой фотографией. Если не удалить эти посты, то лента друзей будет забита постами про ваше обновление аватарки.
posts = vk.wall.get() post_id = posts["items"][0]["id"] vk.wall.delete(post_id = post_id)
Если запустим код, то фотография нашего профиля обновится.
Для автоматизации просто добавим бесконечный цикл и сделаем минуту задержки после каждого обновления фотографии.
y = 0 while(True): x = random.randint(0, len(photo)-1) while(x == y): x = random.randint(0, len(photo)-1) y = x #x и y используется для того, чтобы одна фотография не повторялась 2 раза подряд vk.photos.saveOwnerPhoto(server = server, hash = hash, photo = photo[x]) posts = vk.wall.get() post_id = posts["items"][0]["id"] vk.wall.delete(post_id = post_id) #Удаляем предыдущую фотографию photos = vk.photos.getAll() if (photos['count']>1): photo_id = photos["items"][1]["id"] vk.photos.delete(photo_id = photo_id) time.sleep(60) #Задержка 60 сек.
Полный код
import os import time import random import requests import vk_api from vk_api.utils import get_random_id from urllib import urlretrieve vk_session = vk_api.VkApi('+7999132****', '***********') vk_session.auth() vk = vk_session.get_api() images = os.listdir("images") url = vk.photos.getOwnerPhotoUploadServer()['upload_url'] photo = [] for image in images: request = requests.post(url, files={'photo': open('images/'+image, 'rb')}).json() photo.append(request['photo']) server = request['server'] hash = request['hash'] y = 0 while(True): x = random. randint(0, len(photo)-1) while(x == y): x = random.randint(0, len(photo)-1) y = x vk.photos.saveOwnerPhoto(server = server, hash = hash, photo = photo[x]) posts = vk.wall.get() post_id = posts["items"][0]["id"] vk.wall.delete(post_id = post_id) photos = vk.photos.getAll() if (photos['count']>1): photo_id = photos["items"][1]["id"] vk.photos.delete(photo_id = photo_id) time.sleep(60)
Но после несколькольких десятков обновлений фотографии профиля выйдет ошибка
Captcha: Captcha needed
Давайте разберемся как работать с капчей в VK API.
Работа с captcha
В методе vk_api.VkApi() уже реализована работа с капчей. Необходимо кроме логина и пароля передать функцию обработки капчи captcha_handler.
Изменяем vk_session
vk_session = vk_api. VkApi('+7999132****', '**********', captcha_handler=captcha_handler)
Добавляем функцию captcha_handler(captcha), которая принимает адрес капчи, отправляет изображение капчи в сообщения пользователя и ждёт сообщение с капчей от пользователя.
def captcha_handler(captcha): #Получаем адрес капчи captcha_url = captcha.get_url() #Сохраняем изображение капчи на компьютер urlretrieve(captcha_url, "captcha.jpg") #Получаем ключ (send_captcha() см. далее) key = send_captcha(captcha_url) #Отправляем ключ (текст) капчи return captcha.try_again(key)
Функция для отправки сообщений с изображением капчи пользователю.
Методы messages не доступны для пользователя с сервера, поэтому надо создать группу и получить token.
- Создаём группу/публичную страницу
- Управление => Работа с API => Создать ключ
- Выбираем:
- Разрешить приложению доступ к сообщениям сообщества
- Разрешить приложению доступ к фотографиям сообщества
- Копируем ключ
Так же надо включить Сообщения в настройках группы (Управление => Сообщения) и разрешить сообщения (в меню группы)def send_captcha(captcha_url): #token (ключ) группы token = "КЛЮЧ" vk_session = vk_api. VkApi(token = token) vk = vk_session.get_api() #Получаем адрес капчи url = vk.photos.getMessagesUploadServer()['upload_url'] #Загружаем изображение на сервер ВКонтакте request = requests.post(url, files={'photo': open("captcha.jpg", 'rb')}).json() #Сохраняем фотографию photo = vk.photos.saveMessagesPhoto(server=request['server'], photo = request['photo'], hash = request['hash']) attachment = 'photo{}_{}'.format(photo[0]['owner_id'], photo[0]['id']) #Отправляем сообщение vk.messages.send( user_id = ВАШ_ID, attachment = attachment, random_id=get_random_id()) #Удаляем капчу os.remove("captcha.jpg") #Ждем ответа key = '' while (key == ''): #Получаем первый в списке диалог messages = vk.messages.getDialogs()['items'][0] #Если к сообщению не прикреплено изображение, то значит это ключ if 'attachments' not in messages['message'].
keys(): key = messages['message']['body'] return key
Если запустим код, то он будет выполняться пока не прервём её работу. Когда необходимо будет вводить капчу, то изображение капчи придёт в личные сообщения и после отправки символов с изображения обновление фотографии профиля продолжится.Полный код
import os import time import random import requests import vk_api from vk_api.utils import get_random_id from urllib import urlretrieve def captcha_handler(captcha): captcha_url = captcha.get_url() urlretrieve(captcha_url, "captcha.jpg") key = send_captcha(captcha_url) print(key) return captcha.try_again(key) def send_captcha(captcha_url): token = "КЛЮЧ" vk_session = vk_api.VkApi(token = token) vk = vk_session.get_api() url = vk.photos.getMessagesUploadServer()['upload_url'] request = requests.post(url, files={'photo': open("captcha.jpg", 'rb')}).
Для круглосуточного выполнения кода я использую VPS хостинг. Загружаю изображения и выполняю код на сервере.Код на github
Если есть вопросы, пишите в коментариях или в ЛС.
Новости | ArcheAge
06.03.2023 Тайны вечной зимы
Подробнее
Раскройте «Тайны вечной зимы»! Впереди интересные задания, сюжетные линии, а главное — уникальные награды: глайдер, сферы анимага, а также дизайны костюма и оружия. Самых целеустремленных ждет особый приз — набор «Ветер странствий», из которого вы сможете достать коллекционный предмет!
Новость
15.05.2023 Слияние серверов и закрытие аукциона
Подробнее
В этот четверг произойдет объединение некоторых серверов. Для подготовки события мы отключаем аукцион. До начала профработ 18 мая будет закрыта возможность выставления новых товаров на аукционах всех серверов. Выкуп и ставки на уже выставленные вещи останутся доступными. Подробности в этой новости.
Новость
13.05.2023 Тайны вечной зимы: истории (часть II)
Подробнее
Ледник — далекое и таинственное место. Мало кто из путешественников там бывал, но те, кому посчастливилось добраться до Ледника, возвращаются с увлекательными историями. Мифы это или легенды — решайте сами! С каждой ячейкой ворот нам открывается все больше тайн вечной зимы. Следите за новыми сюжетами на специальной странице, посвященной событию!
Новость
11.05.2023 Месторождения агата
Подробнее
С сегодняшнего дня в ассортимент внутриигрового магазина вернулись агатовый ларец и малый набор рудокопа. Сундучок с фамильярами и ресурсами, а также коробочка с очками работы уже в продаже! Читайте подробности о товарах и выбирайте новинку по вкусу.
Новость
11.05.2023 Новая версия клиента [11 мая]
Подробнее
11 мая на всех серверах русскоязычной версии ArcheAge прошли профилактические работы, во время которых обновилась версия клиента. Загрузить ее можно через Игровой центр. Во время профилактики было проведено стандартное техническое обслуживание всех серверов.
Новость
09.05.2023 С 9 Мая!
Подробнее
Поздравляем с праздником! Пусть ваши верные товарищи и близкие всегда будут рядом — и в реальном, и в виртуальном мире. Будьте почтительны к героям Великой Отечественной войны и всегда храните в своем сердце место для добра!
Новость
05.05.2023 Умножаем ваши заслуги на два!
Подробнее
Фермеры и искатели приключений! Вдоволь отдохнули в прошлые выходные? Тогда пора ворваться в игру с новыми силами, ведь с 00:00 мск 6 мая до 23:59 мск 9 мая мы увеличили получаемые очки чести, ремесленную репутацию и опыт в два раза! Желаем вам продуктивных выходных и хорошего настроения!
Новость
04.05.2023 Майские предложения
Подробнее
Ассортимент игрового магазина вновь пополнился коллекционным горшком с фиолетовой гортензией. Также обновились ежемесячные акции: земельные вексели, сферы анимага, ирамийская гадальная руна и драгоценные эфенские сферы. Пора вновь запастись товарами по приятным ценам!
Новость
04. 05.2023 Новая версия клиента [4 мая]
Подробнее
4 мая на всех серверах русскоязычной версии ArcheAge прошли профилактические работы, во время которых обновилась версия клиента. Загрузить ее можно через Игровой центр. Во время профилактики было проведено стандартное техническое обслуживание всех серверов.
Новость
01.05.2023 С Праздником Весны и Труда!
Подробнее
Пора нагрузить домашнего помощника заданиями, высадить пару грядок овощей на заднем дворе, похвастаться богатой выручкой за ценные грузы из самых отдаленных уголков материка и принять испытания последней недели «Тайн вечной зимы».
Новость
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- …
- следующая ›
- последняя »
Вамси К. Мутха, Мэриленд — DF/HCC
Массачусетская больница общего профиля
Телефон: (617) 643-3059
vamsi@hms. harvard.edu
Похожие участники
Члены DF/HCC, которые разделяют концепции* с Вамси К. Мутха, доктором медицины, но еще не написали публикацию в соавторстве с этим исследователем.
* Концепции – это термины MeSH, автоматически полученные из публикаций участников.
Похожие участники
Больница общего профиля Массачусетса
- Веб-сайт лаборатории Мута
Публикации Harvard Catalyst Profiles
- Jourdain AA, Begg BE, Mick E, Shah H, Calvo SE, Skinner OS, Sharma R, Blue SM, Yeo GW, Burge CB, Mootha VK. Потеря субъединиц мяРНП LUC7L2 и U1 смещает энергетический метаболизм с гликолиза на OXPHOS. Мол Селл 2021; 81:1905-1919.e12. пабмед
- Гудман Р.П., Маркхард А.Л., Шах Х., Шарма Р., Скиннер О.С., Клиш К.Б., Дейк А., Патгири А., Хсу Ю.Х., Масия Р., Нох Х.Л., Сук С. , Голдбергер О., Хиршхорн Дж.Н., Йеллен Г., Ким Дж.К., Мутха В.К. . Печеночный редуктивный стресс NADH лежит в основе общих вариаций метаболических признаков. Природа 2020. ПабМед
- Джейн И.Х., Кальво С.Е., Маркхард А.Л., Скиннер О.С., То Т.Л., Аст Т., Мутха В.К. Генетический скрининг клеточной пригодности при высоком или низком уровне кислорода подчеркивает митохондриальный и липидный метаболизм. Сотовый 2020; 181:716-727.e11. пабмед
- To TL, Cuadros AM, Shah H, Hung WHW, Li Y, Kim SH, Rubin DHF, Boe RH, Rath S, Eaton JK, Piccioni F, Goodale A, Kalani Z, Doench JG, Root DE, Schreiber SL, Vafai SB , Мута ВК. Сборник генетических модификаторов митохондриальной дисфункции раскрывает буферизацию внутри органелл. Сотовый 2019; 179:1222-1238.e17. пабмед
- Гиз Р., Лю В.М., Роузброк Д., Журден А.А., Эрнандес-Санчес М., Мартинес Зурита А., Сун Дж., Тен Хакен Э., Барановский К., Томпсон П.А., Хео Дж.М., Картун З., Айгюн О., Йоргулеску Дж. Б., Чжан В., Нотаранджело Г., Ливиц Д., Ли С., Давидс М.С., Биран А., Фернандес С.М., Браун Дж.Р., Лако А., Чиантра З.Б., Лоулор М.А., Кескин Д.Б., Удеши Н.Д., Вирда В.Г., Ливак К.Дж., Летай А.Г., Нойберг Д., Харпер Д.В., Карр С.А., Пиччони Ф., Отт С.Дж., Лещинер И., Йоханнессен С.М., Доэнч Дж., Мута В.К., Гетц Г., Ву С.Дж. Митохондриальное перепрограммирование лежит в основе устойчивости к ингибированию BCL-2 при лимфоидных злокачественных опухолях. Раковая клетка 2019. пабмед
- Ван Л.В., Шен Х., Нобре Л., Эрсинг И., Пауло Дж.А., Трюдо С., Ван З., Смит Н.А., Ма И., Рейнстадлер Б., Номбург Дж., Зоммерманн Т., Каир-МакФарланд Э., Гиги С.П., Мутха В.К., Уикс М.П., Гевурц Б.Е. Одноуглеродный метаболизм, вызванный вирусом Эпштейна-Барра, стимулирует трансформацию В-клеток. Cell Metab 2019. PubMed
- Гопал Р.К., Кюблер К., Кальво С.Е., Полак П., Ливиц Д., Роузброк Д., Садоу П.М., Кэмпбелл Б., Донован С.Е., Амин С., Джиглиотти Б.Дж., Грабарек З., Хесс Дж. М., Стюарт С., Браунштейн Л.З., Арндт П.Ф., Мордекай С. , Ши А.Р., Чавес Ф., Жан Т., Любиц С.К., Ким Дж., Иафрате А.Дж., Вирт Л., Паранги С., Лещинер И., Дэниелс Г.Х., Мутха В.К., Диас-Сантагата Д., Гетц Г., Макфадден Д.Г. Широко распространенные хромосомные потери и изменения митохондриальной ДНК как генетические факторы клеточной карциномы Гюртле. Раковая клетка 2018; 34:242-255.e5. пабмед
- Гопал Р.К., Кальво С.Э., Ши А.Р., Чавес Ф.Л., МакГуон Д., Мик Э., Пирс К.А., Ли И., Гарофало А., Ван Аллен Э.М., Клиш К.Б., Олива Э., Мутха В.К. Ранняя потеря митохондриального комплекса I и перестройка метаболизма глутатиона при онкоцитоме почки. Proc Natl Acad Sci U S A 2018; 115:E6283-E6290. пабмед
- Эберсолд Р., Агар Дж. Н., Амстер И. Дж., Бейкер М. С., Бертоцци К. Р., Боя Э. С., Костелло К. Э., Краватт Б. Ф., Фенселау К., Гарсия Б. А., Ге И., Гунавардена Дж., Хендриксон Р. С., Хергенротер П. Дж., Хубер К. Г., Иванов А. Р., Дженсен О. Н. , Джуэтт М. С., Келлехер Н.Л., Кисслинг Л.Л., Кроган Н.Дж., Ларсен М.Р., Лу Дж.А., Огорзалек Лу Р.Р., Лундберг Э., МакКосс М.Дж., Маллик П., Мута В.К., Мрксич М., Мьюир Т.В., Патри С.М., Песавенто Дж.Дж., Питтери С.Дж., Родригес Х., Сагателян А., Сандовал В., Шлютер Х., Сечи С., Славофф С.А., Смит Л.М., Снайдер М.П., Томас П.М., Улен М., Ван Эйк Дж.Е., Видал М., Уолт Д.Р., Уайт FM, Уильямс Э.Р., Вольшлагер Т., Высоцкий В.Х., Йейтс Н.А., Янг Н.Л., Чжан Б. Сколько существует человеческих протеоформ? Nat Chem Biol 2018; 14:206-214. пабмед
- Удеши Н.Д., Педрам К., Свинкина Т., Ферешетян С., Майерс С.А., Айгун О., Круг К., Клаузер К., Райан Д., Аст Т., Мута В.К., Тинг А.Ю., Карр С.А. Антитела к биотину позволяют обнаруживать в больших масштабах сайты биотинилирования белков. Национальные методы 2017; 14:1167-1170. пабмед
- Li Y, Jourdain AA, Calvo SE, Liu JS, Mootha VK. CLIC, инструмент для расширения биологических путей на основе совместной экспрессии в тысячах наборов данных. PLoS-компьютер. биол. 2017; 13:e1005653. пабмед
- Хунг В., Лам С.С., Удеши Н.Д., Свинкина Т., Гусман Г., Мута В.К., Карр С.А., Тинг А.И. Протеомное картирование обращенных к цитозолю наружных митохондриальных и ER мембран в живых клетках человека с помощью биотинилирования. Элиф 2017. PubMed
- Calvo SE, Julien O, Clauser KR, Shen H, Kamer KJ, Wells JA, Mootha VK. Сравнительный анализ митохондриальных N-концов мыши, человека и дрожжей. Mol Cell Proteomics 2017. PubMed
- Пералес-Клементе Э., Кук А.Н., Эванс Дж.М., Реллингер С., Секрето Ф., Эммануэле В., Оглесби Д., Мутха В.К., Хирано М., Шон Э.А., Терзич А., Нельсон Т.Дж. Естественная гетероплазмия мтДНК как потенциальный источник вариабельности hiPSC внутри человека. ЕМБО J 2016; 35:1979-90. пабмед
- Арройо Д.Д., Журден А.А., Кальво С.Е., Балларано К.А., Доэнч Д.Г., Рут Д.Э., Мутха В.К. Полногеномный экран смерти CRISPR идентифицирует гены, необходимые для окислительного фосфорилирования. Cell Metab 2016. PubMed
- Джейн И.Х., Заззерон Л., Голи Р., Алекса К., Шацман-Боун С., Диллон Х., Голдбергер О., Пэн Дж., Шалем О., Санджана Н.Е., Чжан Ф., Гесслинг В., Запол В.М., Мутха В.К. Гипоксия как терапия митохондриальной болезни. Наука 2016; 352:54-61. пабмед
- Кальво С.Э., Клаузер К.Р., Мутха В.К. MitoCarta2.0: обновленный перечень митохондриальных белков млекопитающих. Nucleic Acids Res 2015. PubMed
- Камер К.Дж., Мута В.К. Молекулярная эра митохондриального унипортера кальция. Nat Rev Mol Cell Biol 2015; 16:545-53. пабмед
- Нильссон Р., Джайн М., Мадхусудхан Н., Шеппард Н.Г., Стритматтер Л., Кампф С., Хуанг Дж., Асплунд А., Мутха В.К. Экспрессия метаболических ферментов подчеркивает ключевую роль MTHFD2 и митохондриального пути фолиевой кислоты при раке. Нацкоммуна 2014; 5:3128. пабмед
- Джайн М., Нильссон Р., Шарма С., Мадхусудхан Н., Китами Т., Соуза А.Л. , Кафри Р., Киршнер М.В., Клиш С.Б., Мутха В.К. Профилирование метаболитов определяет ключевую роль глицина в быстрой пролиферации раковых клеток. Наука 2012; 336:1040-4. пабмед
- Боуман Дж. М., Пероччи Ф., Гиргис Х. С., Плованич М., Белчер-Тимме К. А., Санчак Ю., Бао X. Р., Стритматтер Л., Голдбергер О., Богорад Р. Л., Котелянский В., Мутха В. К. Интегративная геномика идентифицирует MCU как важный компонент митохондриального унипортера кальция. Природа 2011; 476:341-5. пабмед
Скрыть
Узнайте, чем похожи эти участникиПохожие участники
Члены DF/HCC, которые разделяют концепции* с Вамси К. Мутха, доктором медицины, но еще не написали публикацию в соавторстве с этим исследователем.
* Концепции – это термины MeSH, автоматически полученные из публикаций участников.
Похожие участники
|