minato37103710
@minato37103710

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

discord.pyでgoogle検索ができない

解決したいこと

botでGoogle検索の機能を実装するために
こちらの記事のコードをコピペさせてもらいましたがエラーが出て検索ができませんでした

発生している問題・エラー

Traceback (most recent call last):
  File "main.py", line 6, in <module>
    from googlesearch import search
ModuleNotFoundError: No module named 'googlesearch'

該当するソースコード

# exitを使うため
import sys
# discordのAPI
import discord
# Google検索
from googlesearch import search

# 接続に必要らしい(よくわかってない)
client = discord.Client()

# とりあえずフラグでモード管理しようかなと
ModeFlag = 0

# 起動時のメッセージ
@client.event
async def on_ready():
    # 起動時にメッセージの送信
    channel = client.get_channel(チャンネルID)
    await channel.send('監視してるよ^^')

# メッセージを受けた時の動作
@client.event
async def on_message(message):
    # イベント入るたびに初期化はまずいのでグローバル変数で
    global ModeFlag
    # botの発言は無視する(無限ループ回避)
    if message.author.bot:
        return
    # 一応終了するコマンドも用意しておく
    if message.content == '!exit':
        await message.channel.send('ノシ')
        sys.exit()
    # google検索モード(次に何か入力されるとそれを検索)
    if ModeFlag == 1:
        kensaku = message.content
        ModeFlag = 0
        count = 0
        # 日本語で検索した上位5件を順番に表示
        for url in search(kensaku, lang="jp",num = 5):
            await message.channel.send(url)
            count += 1
            if(count == 5):
               break
    # google検索モードへの切り替え
    if message.content == '!google':
        ModeFlag = 1
        await message.channel.send('検索するワードをチャットで発言してね')
    # 単純な応答
    if message.content == 'bot君いる?':
        await message.channel.send('私bot君。あなたの後ろにいるよ。')
    # 特定の文字から始まる文章が発言されたとき
    if message.content.startswith('負け'):
        lose = message.author.name + "の負け!w"
        await message.channel.send(lose)
    #リプライを受け取った時
    if client.user in message.mentions:
        reply = f'{message.author.mention} うるさいよ。'
        await message.channel.send(reply)
    # これについては触れないよ。
    if message.content.startswith("なんだかんだ"):
        kanda = "かんだ・・・神田ァ!?\n" + "https://www.youtube.com/watch?v=KUwpssJX37M"
        await message.channel.send(kanda)
# botの起動と接続
client.run('botのアクセストークン')
ソースコードを入力

自分で試したこと

エラーの意味が分からなかったので何もできませんでした

0

1Answer

おそらくモジュールがインストールされていないと思われます。

コマンドラインにて、

pip install googlesearch-python

を実行してみてください

1Like

Comments

  1. @minato37103710

    Questioner

    回答ありがとうございます。
    モジュールをインストールしたところ正常に動作しました。
    ありがとうございました

Your answer might help someone💌