[PYTHON] Wie auch immer, ich bin zu Hause, also machen wir mit Discord einen (Site-) Screenshot-Funktionsbot!

Hallo! Ist was Mosu und T-Taku. Ich habe etwas Freizeit in Corona, also habe ich beschlossen, einen Artikel zu schreiben! Bitte bleiben Sie mit mir in Kontakt ...: boy_tone1:

Ein wenig beiseite

https://discordapp.com/oauth2/authorize?client_id=476012428170362880&permissions=2147347828&scope=bot Dieser Bot wird von mir T-taku ausgeführt. Wenn Sie sehen möchten, wie der Screenshot-Befehl aussieht, geben Sie ihn bitte ein und probieren Sie ihn aus!

Was diesmal zu vervollständigen

Erstellen Sie mit Discord einen Bot, der Ihnen einen Screenshot Ihrer Site gibt! Bitte beachten Sie: ** Dies ist keine Einführung in Discord.py. ** Informationen zur Kontoerstellung finden Sie im folgenden großartigen Artikel: hier

Umgebung

Machen wir es gleich!

Dieses Mal werden wir es unter Windows 10 schaffen. Darüber hinaus gehen wir davon aus, dass auch Google Chrome enthalten ist.

Einführung in den Chrome-Treiber

Installieren Sie unter hier den Chrome-Treiber, der zu Ihrer Umgebung passt. Bitte beachten Sie, dass Sie eine Fehlermeldung erhalten, wenn Sie nicht die richtige Version eingeben!

Pip-Einstellungen

pip install discord.py pillow chromedriver chromedriver-binary selenium

Implementierung

Lassen Sie es uns jetzt implementieren! Zuerst der Screenshot-Teil.


from PIL import Image
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
Web="https://yahoo.co.jp"
FILENAME = "screen.png "
options=Options()
options.set_headless(True)
options.add_argument('--disable-dev-shm-usage')
options.add_argument('start-maximized')
options.add_argument('disable-infobarse')
options.add_argument('--disable-extensions')
options.add_argument('--disable-gpu')
options.add_argument('--no-sandbox')
options.binary_location="Wo gibt es Chrome"
driver=webdriver.Chrome(chrome_options=options,executable_path=r"Standort des Chrome-Treibers")
driver.get(web)
driver.set_window_size(1280, 720)
driver.save_screenshot(FILENAME)
driver.quit()

An Zwietracht senden

Es ist so konzipiert, dass es mindestens funktioniert. (Vielleicht...)

import discord
from discord.ext import commands
from PIL import Image
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

bot = commands.Bot(command_prefix='!',activity=d.Activity(name='Während des Startvorgangs!',type=d.ActivityType.watching))

@bot.event
async def on_ready():
    #Einloggen
    print('Login infomation>>>')
    print(bot.user.name)
    print(bot.user.id)
    print('------')

@bot.event
async def on_message(message):
    ctx = await bot.get_context(message)#Nimm ctx
    if message.author.bot:
        return #Reagiert nicht auf Bot
    await bot.invoke(ctx)

@bot.command()
async def ss(ctx,web):
    try:
        FILENAME = "screen.png "
        options=Options()
        options.set_headless(True)
        options.add_argument('--disable-dev-shm-usage')
        options.add_argument('start-maximized')
        options.add_argument('disable-infobarse')
        options.add_argument('--disable-extensions')
        options.add_argument('--disable-gpu')
        options.add_argument('--no-sandbox')
        options.binary_location="Wo Chrome ist"
        driver=webdriver.Chrome(chrome_options = options,executable_path=r"Wo sich der Chrome-Treiber befindet")
        if not "http" in str(web):
            try:
                driver.get("http://"+str(web))
            except:
                driver.get("https://"+str(web))
        else:
            driver.get(str(web))
        if 'IP addres' in driver.page_source:
            await ctx.send("Sie können nicht auf diese Webseite zugreifen.")
        else:
            driver.set_window_size(1280, 720)
            driver.save_screenshot('screenshot.png')
            file = discord.File("screenshot.png ", filename="image.png ")
            embed = d.Embed(title="Bildschirmfoto", description=f"{web}")
            embed.set_image(url="attachment://image.png ")
            await ctx.send(file=file,embed=embed)
            driver.quit()
    except:
        await ctx.send("Der Zugriff war aufgrund eines Fehlers nicht möglich.")
bot.run("TOKEN HERE")

das ist alles

Wie war es? Ich habe einen Artikel mit ein wenig Schwierigkeit gemacht. Bitte füge es deinem Bot hinzu!

Wie ich am Anfang des Artikels sagte, wenn Sie meinen Bot hinzufügen, wird dies die Erstellung des Artikels und die Entwicklung des Bots fördern. Vielen Dank!: https://discordapp.com/oauth2/authorize?client_id=476012428170362880&permissions=2147347828&scope=bot

Wenn Sie es hilfreich finden, würde ich mich sehr über LGTM freuen!

Na dann! (Ich wäre Ihnen dankbar, wenn Sie mir sagen könnten, wenn Sie einen Fehler gemacht haben!)

Recommended Posts

Wie auch immer, ich bin zu Hause, also machen wir mit Discord einen (Site-) Screenshot-Funktionsbot!
Machen wir einen Discord Bot.
Lassen Sie uns mit flask-babel eine mehrsprachige Site erstellen
Machen wir einen Twitter-Bot mit Python!
Ich habe versucht, einen Übersetzungs-BOT zu erstellen, der mit Discord unter Verwendung von Googletrans funktioniert
Wenn Sie einen Discord-Bot mit Python erstellen möchten, verwenden wir ein Framework
Erstellen Sie einen Bot für Skype unter EC2 (CentOS)
Erstellen Sie einen BOT, der die Discord-URL verkürzt
Lassen Sie einen Papagei LINE Bot mit AWS Cloud9 zurückgeben
[Zum Spielen] Versuche Yuma zu einem LINE Bot zu machen (Python)
[Super einfach] Machen wir einen LINE BOT mit Python.