рдкрд╛рдпрдерди рдХреЛрдб рдХреА 39 рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ рднреБрдЧрддрд╛рди рдХреА рдЧрдИ рд╕реЗрд╡рд╛ рдХреА рдПрдХ рдкрд╛рдпрд░реЗрдЯреЗрдб рдХреЙрдкреА

рдЫрд╡рд┐
рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдмреЙрдЯ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдЖрджреЗрд╢ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рджреМрд░рд╛рди, рдореБрдЭреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЗрд╕рдХреА рдбрд┐рд▓реАрд╡рд░реА рдХреЗ рд╕рд╛рде рд╡реЗрдм рдкреЗрдЬ рдХрд╛ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред рдЬрдм рдЖрдк рдЗрд╕реЗ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ рддреЛ рдХрд┐рд╕реА рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпреЛрдВ рд╕реЛрдЪреЗрдВ? рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдирд┐рдХрд▓рд╛, рднреБрдЧрддрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ! рдЕрдзрд┐рдХ рдкрд╕реАрдирд╛ рдХрдЯреЛрдоред


рдЗрд╕рд▓рд┐рдП, рднрд╛рдЧреНрдп рдиреЗ рдореБрдЭреЗ url2png рд╕реЗрд╡рд╛ рдкрд░ рдзрдХреЗрд▓ рджрд┐рдпрд╛ред рд╕рдм рдХреБрдЫ рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИ: рдЖрдк рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд░рддреЗ рд╣реИрдВ, рдПрдХ рдПрдкреАрдЖрдИ рдЯреЛрдХрди рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЕрдкрдиреЗ рдЖрдк рд╕реЗ рдЕрдиреБрд░реЛрдз рдХрд░рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ред


рдЫрд╡рд┐


рдирд╣реАрдВ, рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ, рдЧрдВрднреАрд░рддрд╛ рд╕реЗ, рдХрдИ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдмреЙрдЯ рдХреЗ рд▓рд┐рдП VDS рд╕рд╕реНрддрд╛ рд╣реИ! рдФрд░ рдлрд┐рд░ рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЧрдпрд╛ рдХрд┐ рдореБрдЭреЗ рд╕рднреА рдЙрдкрд▓рдмреНрдз рддрд░реАрдХреЛрдВ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдирд╛ рдерд╛ред рдореБрдЭреЗ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЕрдкрдиреЗ рджрд┐рдорд╛рдЧ рдХреЛ рд░реИрдХ рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рдереА, рдХреНрдпреЛрдВрдХрд┐ рд╕реЗрд▓реЗрдирд┐рдпрдо рдЬреИрд╕реА рдХреЛрдИ рдЪреАрдЬ рдирд╣реАрдВ рдереАред рд╕реЗрд▓реЗрдирд┐рдпрдо рдХреЛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдбреНрд░рд╛рдЗрд╡рд░ рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдореИрдВ рдЖрдкрдХреЛ рдЪреЗрддрд╛рд╡рдиреА рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдлреИрдВрдЯрдо рдЬреЗрдПрд╕ рдЕрдм рд╕реЗрд▓реЗрдирд┐рдпрдо рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП Google рдХреНрд░реЛрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣реЗрдбрд▓реЗрд╕ рдореЛрдб рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ (рдЬрдм рд╡реЗрдмрдбреНрд░рд╛рдЗрд╡рд░ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ)ред рдЗрд╕ VDS рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХреИрд╕реЗ рдХрд░реЗрдВ? рдкрд╣рд▓реЗ рдЪреАрдЬреЗрдВ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рдЦреБрдж рдХреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдХрдВрд╕реЛрд▓ рдореЗрдВ, рдирд┐рдореНрди рдХрдорд╛рдВрдб рджрд░реНрдЬ рдХрд░реЗрдВред


sudo apt update sudo apt install -y chromium-browser 

рдЗрд╕ рд▓рд┐рдВрдХ рдХреЗ рдмрд╛рдж рдЖрдкрдХреЛ рдХреНрд░реЛрдореЗрдбреНрд░рд┐рд╡рд░ рдХрд╛ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг (2.41 рдлрд┐рд▓рд╣рд╛рд▓) рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рд╣реЛрдЧрд╛ред рдЖрдкрдХреЛ рдЗрд╕реЗ рдирд┐рдореНрди рдЖрджреЗрд╢реЛрдВ рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред


 wget https://chromedriver.storage.googleapis.com/2.41/chromedriver_linux64.zip unzip chromedriver_linux64.zip sudo mv chromedriver /usr/bin/chromedriver sudo chown root:root /usr/bin/chromedriver sudo chmod +x /usr/bin/chromedriver 

рдореИрдВ рдпрд╣ рднреА рдиреЛрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рдмреЙрдЯ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдХреЛ рдбреАрдмрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рд░реВрд╕ рдореЗрдВ рд╣реЛрдиреЗ рдкрд░ рдЕрдкрдиреА рдорд╢реАрди рдкрд░ рд╡реАрдкреАрдПрди рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЕрдм рдЖрдк рдмреЙрдЯ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдкрдХреЛ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА:


 pytelegrambotapi selenium validators 

рдЖрдк рдЙрдиреНрд╣реЗрдВ рдЪреБрдкрдЪрд╛рдк рдкрд╛рдЗрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рд╢реБрд░реБрдЖрдд рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИред


 # -*- coding: utf-8 -*- import telebot import os import validators from selenium import webdriver 

рдкрд╣рд▓реЗ рдореИрдВрдиреЗ рдПрдХ рдмреЙрдЯ рдмрдирд╛рдпрд╛ рдФрд░ рд╣реЗрдбрд▓реЗрд╕ рдореЛрдб рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ред


 #  token = 'token of this bot' bot = telebot.TeleBot(token, threaded = False) #      headless  options = webdriver.ChromeOptions() options.add_argument('--headless') options.add_argument('--disable-gpu') options.add_argument('--disable-dev-shm-usage') options.add_argument('--no-sandbox') 

рддрдм рдЙрдиреНрд╣реЛрдВрдиреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдПрдХ рдЧреНрд░реАрдЯрд┐рдВрдЧ рдФрд░ рдорджрдж рдЬрд╛рд░реА рдХреАред


 #   /start  /help @bot.message_handler(commands=['start']) def hello_user(message): bot.send_message(message.chat.id, 'Hello, ' + message.from_user.username + "!") @bot.message_handler(commands=['help']) def show_help(message): bot.send_message(message.chat.id, 'To get screenshot of webpage use command /getpng.\nExample: /getpng https://www.google.com') 

рдПрдХ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЪреАрдЬ рдмрдЪреА рд╣реИред рд╕рддреНрдпрд╛рдкрдирдХрд░реНрддрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рджрд░реНрдЬ рдХрд┐рдП рдЧрдП рд▓рд┐рдВрдХ рдХреЛ рдорд╛рдиреНрдп рдХрд░рддрд╛ рд╣реИ (рдЯреЙрдЯреЛрд▓реЙрдЬреА рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИ)ред рд╕рд╛рде рд╣реА, рдУрдПрд╕ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдХреЛ рднреЗрдЬрдиреЗ рдХреЗ рдмрд╛рдж рд╕рд░реНрд╡рд░ рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддрд╛рдХрд┐ рд╕реНрдкреЗрд╕ рди рд▓рд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред


 #     selenium  headless chrome @bot.message_handler(commands=['getpng']) def get_screenshot(message): uid = message.chat.id url = "" try: url = message.text.split(' ')[1] except IndexError: bot.send_message(uid, 'You have not entered URL!') return if not validators.url(url): bot.send_message(uid, 'URL is invalid!') else: photo_path = str(uid) + '.png' driver = webdriver.Chrome(chrome_options = options) driver.set_window_size(1280, 720) driver.get(url) driver.save_screenshot(photo_path) bot.send_photo(uid, photo = open(photo_path, 'rb')) driver.quit() os.remove(photo_path) 

рд╣рдо рдмреЙрдЯ рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдХреЗ рдСрдкрд░реЗрд╢рди рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВ!


 #  if __name__ == '__main__': bot.infinity_polling() 

рдЫрд╡рд┐


рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рдм рдХреБрдЫ рдорд╣рд╛рди рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдмреЗрд╢рдХ, рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдмрдиреНрд╕ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЦреБрдж рдХреЛ рдиреАрдВрд╡ рдмрдирд╛рдиреЗ рдХрд╛ рд▓рдХреНрд╖реНрдп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдФрд░ рдЙрд╕ рддрдХ рдкрд╣реБрдВрдЪ рдЧрдпрд╛ред рджрд░рдЕрд╕рд▓, рдЗрдЪреНрдЫреБрдХ рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдмреЙрдЯ рдХрд╛ рд▓рд┐рдВрдХ рдФрд░ рдЗрдЪреНрдЫреБрдХ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреАрдердм рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╣реИ ред рдЗрд╕ рдмреАрдЪ, рд╕рднреА рдЕрдЪреНрдЫреЗ, рдЖрдкрдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рдХрд╛рд╢рдиреЛрдВ рдореЗрдВ рдорд┐рд▓рддреЗ рд╣реИрдВ!

Source: https://habr.com/ru/post/hi420513/


All Articles