Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Python Программа пишет пробелы вместо русских символов

Григорий Петров Ученик (97), на голосовании 1 месяц назад
почему программа не пишет русскими буквами комментарий
import pyautogui
import time

def post_comment(comment, comment_button_position, input_field_position, comment_send_button_position, close_button_position, swipe_position):
# Нажатие на кнопку комментария
pyautogui.moveTo(comment_button_position[0], comment_button_position[1])
pyautogui.click ()

# Небольшая пауза для открытия комментариев
time.sleep(2)

# Нажатие на поле ввода комментария
pyautogui.moveTo(input_field_position[0], input_field_position[1])
pyautogui.click ()

# Ввод комментария с паузой между символами
pyautogui.typewrite(comment, interval=0.1) # Добавляем паузу между символами

# Нажатие на кнопку отправки комментария
pyautogui.moveTo(comment_send_button_position[0], comment_send_button_position[1])
pyautogui.click ()

# Небольшая пауза для отправки комментария
time.sleep(2)

# Нажатие на кнопку закрытия комментариев
pyautogui.moveTo(close_button_position[0], close_button_position[1])
pyautogui.click ()

# Небольшая пауза перед свайпом
time.sleep(1)

# Свайп вверх для перелистывания (движение мыши)
for _ in range(1): # Делаем 3 свайпа
pyautogui.moveTo(swipe_position[0], swipe_position[1])
pyautogui.dragTo(swipe_position[0], swipe_position[1] - 500, duration=0.5)
time.sleep(1) # Пауза между свайпами

# Небольшая пауза перед повтором
time.sleep(3)

# Основной цикл программы
comment_text = "Отличное видео!" # Текст комментария
comment_button_position = (530, 690) # Координаты кнопки комментария
input_field_position = (350, 1000) # Координаты поля для ввода комментария
comment_send_button_position = (530, 1000) # Координаты кнопки отправки комментария
close_button_position = (530, 370) # Координаты кнопки закрытия комментариев
swipe_position = (350, 800) # Координаты для свайпа вверх

while True:
post_comment(comment_text, comment_button_position, input_field_position, comment_send_button_position, close_button_position, swipe_position)
time.sleep(5) # Пауза перед новым комментарием
Голосование за лучший ответ
Юрий Семыкин Искусственный Интеллект (207979) 3 месяца назад
Пишет, но в кодовой странице, назначенной для поля вывода, кодам русских символов нет изображения.
У вас не совпадает кодировка исходника и вывода.
Будете настраивать, не удивляетесь, если вылезут крокозябры, это значит, "не попал", надо дальше подбирать кодировку.
Григорий ПетровУченик (97) 3 месяца назад
как эту проблему решить:(
Юрий Семыкин Искусственный Интеллект (207979) Григорий Петров, зависит от ваших обстоятельств. Посмотрите кодировку в редакторе (среде прогр), поищите в параметрах поля вывода, поищите по слову "локализация" в сети.
D PМудрец (18106) 2 месяца назад
Подбирать ничего не надо. Правильная кодировка называется UTF-8
Анатолий Зяблин Просветленный (31947) 3 месяца назад
С pyperclip (только установи сперва)
 pip install pyperclip 

Код

 import pyautogui 
import time
import pyperclip

def post_comment(comment, comment_button_position, input_field_position, comment_send_button_position, close_button_position, swipe_position):
# Нажатие на кнопку комментария
pyautogui.moveTo(comment_button_position[0], comment_button_position[1])
pyautogui.click()

# Небольшая пауза для открытия комментариев
time.sleep(2)

# Нажатие на поле ввода комментария
pyautogui.moveTo(input_field_position[0], input_field_position[1])
pyautogui.click()

# Ввод комментария через буфер обмена
pyperclip.copy(comment) # Копируем текст в буфер обмена
pyautogui.hotkey("ctrl", "v") # Вставляем текст с помощью сочетания клавиш

# Нажатие на кнопку отправки комментария
pyautogui.moveTo(comment_send_button_position[0], comment_send_button_position[1])
pyautogui.click()

# Небольшая пауза для отправки комментария
time.sleep(2)

# Нажатие на кнопку закрытия комментариев
pyautogui.moveTo(close_button_position[0], close_button_position[1])
pyautogui.click()

# Небольшая пауза перед свайпом
time.sleep(1)

# Свайп вверх для перелистывания (движение мыши)
for _ in range(1):
pyautogui.moveTo(swipe_position[0], swipe_position[1])
pyautogui.dragTo(swipe_position[0], swipe_position[1] - 500, duration=0.5)
time.sleep(1)

# Небольшая пауза перед повтором
time.sleep(3)

# Основной цикл программы
comment_text = "Отличное видео!" # Текст комментария на русском языке
comment_button_position = (530, 690)
input_field_position = (350, 1000)
comment_send_button_position = (530, 1000)
close_button_position = (530, 370)
swipe_position = (350, 800)

while True:
post_comment(comment_text, comment_button_position, input_field_position, comment_send_button_position, close_button_position, swipe_position)
time.sleep(5) # Пауза перед новым комментарием
Григорий ПетровУченик (97) 3 месяца назад
теперь даже пробелы не печатает
Рустам Абдрашитов Мудрец (10719) 2 месяца назад
 def post_comment(comment_text, comment_button_position, input_field_position, comment_send_button_position, close_button_position, swipe_position): 
pass

import time
import random

max_comments = 10
comments_sent = 0

while comments_sent < max_comments:
try:
post_comment(comment_text, comment_button_position, input_field_position, comment_send_button_position, close_button_position, swipe_position)
comments_sent += 1
print(f"Комментарий {comments_sent} отправлен.")
time.sleep(random.uniform(3, 7))
except Exception as e:
print(f"Ошибка при отправке комментария: {e}")
break
Похожие вопросы