Форум программистов, компьютерный форум, киберфорум
Web-мастеринг
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
 Аватар для chdanil
2 / 1 / 1
Регистрация: 20.06.2018
Сообщений: 31

Насколько трудно реализовать бота для вк кидающий картинки?

21.09.2018, 20:41. Показов 1689. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Мой знакомый написал бота для Вк. Его смысл в том, что он кидает картинку из сети по вашему запросу. Товарищ сказал, что информации про данное чудо нет вообще в сети. Как же быть, если хотелось узнать про алгоритм копирования картинки с сети? Настолько ли это трудно реализовать, как он говорил?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.09.2018, 20:41
Ответы с готовыми решениями:

Насколько трудно раскатать трехмерную модель в плоскость по элементам?
Всем приятного вечера.:) Вопрос к знатокам автокада. Есть у меня желание делать выкройки для одежды и снаряги, но карандашом махать...

Насколько трудно написать программу (просмотр видео + перемотка + субтитры) ?
Есть сайт (Паззл инглиш) с очень интересной методой изучения английского языка. Метода заключается в том, что смотришь обычное видео...

Насколько трудно понять при диассемблировании, что происходит вызов rand?
Вдруг образовался жизненно важный вопрос. Насколько трудно понять хакеру при диассемблировании, что происходит вызов rand? Я говорю,...

8
Тутошний я
 Аватар для Grey
2147 / 1202 / 225
Регистрация: 03.11.2009
Сообщений: 4,424
Записей в блоге: 2
22.09.2018, 01:45
Лучший ответ Сообщение было отмечено chdanil как решение

Решение

а чтож ваш знакомый, вам алгоритм не расскажет?
чтоб найти картинку в сети нужен поисковик.
можно создать своего, а можно подключиться к существующим.
бот получает запрос, отправляет его в поисковик и возвращает картинку.
я бы не сказал, что это легко. но решаемо. знакомый то сделал.
а раз в сети такого нету, то видимо не очень оно и нужно.
поисковик не всегда на первых местах выдаёт картинку соответствующую запросу. лучше через поисковик искать.
1
 Аватар для chdanil
2 / 1 / 1
Регистрация: 20.06.2018
Сообщений: 31
22.09.2018, 15:49  [ТС]
Цитата Сообщение от Grey Посмотреть сообщение
а чтож ваш знакомый, вам алгоритм не расскажет?
чтоб найти картинку в сети нужен поисковик.
можно создать своего, а можно подключиться к существующим.
бот получает запрос, отправляет его в поисковик и возвращает картинку.
я бы не сказал, что это легко. но решаемо. знакомый то сделал.
а раз в сети такого нету, то видимо не очень оно и нужно.
поисковик не всегда на первых местах выдаёт картинку соответствующую запросу. лучше через поисковик искать.
спасибо, но хотелось бы узнать подробней про само взятие изображения из сети. Знакомый не особо умеет объяснять: говорил что-то про html код.... хотя я и сам предполагаю, что ему была помощь из вне
0
Тутошний я
 Аватар для Grey
2147 / 1202 / 225
Регистрация: 03.11.2009
Сообщений: 4,424
Записей в блоге: 2
22.09.2018, 22:00
у каждой картинки есть адрес.
поисковик возвращает html или xml код с адресами.
регулярными выражениями выбираешь адреса картинок. бот потом их передаёт.
p.s.ну да, поисковик в основном возвращает адреса на превью.
0
 Аватар для hashell
21 / 17 / 6
Регистрация: 20.09.2018
Сообщений: 51
Записей в блоге: 1
22.09.2018, 23:28
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
import vk
import time
import urllib
from urllib import request
import requests
import re
import random
 
date_mark = 0
 
def img(src) :
    try :
        req = request.Request('https://www.google.com/search?q='+urllib.parse.quote_plus(src)+'&source=lnms&tbm=isch&sa', headers={'User-Agent': '(Microsoft; Windows v 10) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30'})
        text = str(request.urlopen(req).read())
        text = text[text.index('id="images"'):]
        index = [i.start() for i in re.finditer('href', text) ]
        index = index[random.randrange(0,13)]
        text = text[index+6:index+1000]
        text = re.sub('amp;', '', text[:text.index('"')])
        text = str(request.urlopen(text).read())
        index = text.index('id="il_ic"')
        text = text[index:index+320]
        index = text.index('src')
        text = text[index+5:index+220]
        text = text[:text.index('"')]
        req = request.Request(text, headers={'User-Agent': 'Chrome/59.0.3071.110'})
        image = request.urlopen(req).read()
        return image
    except :
        req = request.Request('https://www.google.com/search?q='+urllib.parse.quote_plus(src)+'&source=lnms&tbm=isch&sa', headers={'User-Agent': 'Chrome/59.0.3071.110'})
        text = str(request.urlopen(req).read())
        index = text.index('id="ires"')
        text = text[index:index+1000]
        text = text[text.index('src')+5:]
        text = text[:text.index('"')]
        req = request.Request(text, headers={'User-Agent': 'Chrome/59.0.3071.110'})
        image = request.urlopen(req).read()
        return image
 
def send(image) :
    req = requests.post(vk_api.photos.getMessagesUploadServer(peer_id='1')['upload_url'], files=image).json()
    req = vk_api.photos.saveMessagesPhoto(hash=req['hash'], server=req['server'], photo=req['photo'])
    attach = 'photo'+str(req[0]['owner_id'])+'_'+str(req[0]['id'])+'_'+req[0]['access_key']
    vk_api.messages.send( chat_id='[B]!!!ID ЧАТА ВК!!![/B]', attachment=attach)
 
session = vk.AuthSession('6693646', '[B]!!!СВОЙ ЛОГИН!!![/B]', [B]'!!!ПАРОЛЬ!!![/B]', scope='wall, messages, photos' )
vk_api = vk.API(session,v='5.0')
 
while True :
    try :
        message = vk_api.messages.getHistory( chat_id='[B]!!!ID ЧАТА ВК!!![/B]', count=1)
        date = message['items'][0]['date']
        message = message['items'][0]['body']
        if message == '' :
            message = '.'
        if date != date_mark :
            if message[0] == '?' :
                print('image')
                image = {'photo': ('img.png', img(message[1:]))}
                send(image)
            else :
                print('None')
            date_mark = date
        else :
            time.sleep(1)
    except Exception as eror :
        print('Eror:',eror)
        time.sleep(2)
находит картинку по сообщению которое начинается на '?'
в чате вк

Добавлено через 2 минуты
теперь есть в сети

Добавлено через 2 минуты
код не идеальный, но работает
нужно скачать модули vk и request, если их нет

Добавлено через 2 минуты
да, я и есть тот самый друг)
я тебя нечаянно нашёл
1
Тутошний я
 Аватар для Grey
2147 / 1202 / 225
Регистрация: 03.11.2009
Сообщений: 4,424
Записей в блоге: 2
23.09.2018, 07:21
питон на сервере установлен?
Python
1
while True :
из этого цикла где то выход есть? или он постоянно работает?
0
 Аватар для hashell
21 / 17 / 6
Регистрация: 20.09.2018
Сообщений: 51
Записей в блоге: 1
23.09.2018, 09:24
работает постоянно, а за сервер платить надо, так что использую свой ноутбук как сервер
0
Тутошний я
 Аватар для Grey
2147 / 1202 / 225
Регистрация: 03.11.2009
Сообщений: 4,424
Записей в блоге: 2
23.09.2018, 10:09
понятно.
просто не встречал хостинги с поддержкой питона.
и на виртуальных хостингах стоит ограничение по длительности работы скрипта. а потом его отрубают, как зависший.
а брать выделенный сервер дороговато.
0
213 / 109 / 46
Регистрация: 12.12.2016
Сообщений: 399
24.09.2018, 16:54
Grey, самый дешевый vds на базе linux от firstvds (не реклама), например, ограничение только на создаваемую нагрузку сервером.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.09.2018, 16:54
Помогаю со студенческими работами здесь

Реализовать бота для telegram
Добрый день. Вопрос таков. Как данное задание выполнить со следующими условиями: 1) Запускаться приложение должно без дополнительных...

Как реализовать зум для картинки?
Подскажите как сделать так, что бы можно было приблизить картинку в приложении, нажатием на нее?

Файл: Реализовать алгоритм работы чат-бота...
Всем привет! Задача такова: - Пользователя просят написать слово, например "Привет" - программа ищет в текстовом файле с кучей...

Насколько плоха и насколько хороша такая сборка? Ваше мнение
Материнская плата: ASRock H55M-LE Процессор: Intel Core i3 540 3.07 Ghz Оперативная память: 2xKingston KVR1333D3N9/2G...

Насколько опасны вирусы, насколько они могут навредить?
насколько опасны вирусы.насколько они могут навредить. в настоящиймомент сижу в иннете на компе без антивирусника ради экспиремента]:->


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru