@shohei51

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!

pythonでスクレイピングしたものをLINE botで送られてくるようにする。(英語→日本語)

解決したいこと

英語で送られてくる文字を日本語にしたい。

詳細)
Pythonを使用し、あるHPからスクレイピングで情報を取得しました。
それをLINEbotで毎日X時に送られてくるようにしています。
Github actionsでmain.ymlを作成し、それで送られてくるようになっていますが英語で送られてきます。
それを日本語で送られてくるようにしたいです。
VScodeでかいたpythonをそのまま実行すれば日本語で送られてくるのですが、Github actionsを介すと英語になってしまいます。

main.pyコード

from selenium import webdriver
from time import sleep
from selenium.webdriver.chrome.options import Options

from linebot import LineBotApi
from linebot.models import TextSendMessage


options = Options()
options.add_argument("--headless")
options.add_argument('--lang=ja-JP')

browser = webdriver.Chrome(options = options)
# browser = webdriver.Chrome()
url = "HPのURL"
browser.get(url)

from datetime import datetime, timedelta, timezone
JST = timezone(timedelta(hours=+9), 'JST') #日本時間
dt_now = datetime.now(JST)

if dt_now.day < 10:
    number = "0" + str(dt_now.day)
elif dt_now.day >= 10:
    number = str(dt_now.day)

elem_id = browser.find_element_by_id(f"d{number}")


CHANNEL_ACCESS_TOKEN = "チャンネルアクセストークン"
line_bot_api = LineBotApi(CHANNEL_ACCESS_TOKEN)

def main():
    USER_ID = "ユーザーID"
    messages = TextSendMessage(text = elem_id.text)
    line_bot_api.push_message(USER_ID, messages = messages)
    # line_bot_api.broadcast(messages = messages) #(全員送信用)

if __name__ == "__main__":
    main()
browser.quit()

↑これをRUNするとちゃんと日本語でLINEにおくられてきます。
しかし下のmain.ymlが入ると英語になってLINEに送られてきます。

main.ymlコード

# ワークフロー名
name: 名前

# 発火タイミング
on:
  schedule:
    - cron: '0 20 * * *'

jobs:
  build:
    # Ubuntuの最新版環境内で処理
    runs-on: ubuntu-latest

    # 実行する処理&コマンド指定
    steps:
      - uses: actions/checkout@v2
      - name: Set up Python 3.8
        uses: actions/setup-python@v1
        with:
          python-version: 3.8
      - name: Install dependencies
        run: |
          # pip更新
          python -m pip install --upgrade pip
          # 必要なパッケージインストール
          pip install line-bot-sdk
          pip install selenium
          pip install chromedriver
      - name: Run script
#         env:
#           CHANNEL_ACCESS_TOKEN: "YOUR_CHANNEL_ACCESS_TOKEN"
#           USER_ID: "YOUR_USER_ID"
        run: |
          # main.pyの実行
          python main.py

自分で試したこと

python側の options.add_argument("--headless") が英語にしていることが分かり、
 options.add_argument('--lang=ja-JP') を書きました。
それによってpython側でRUNした時は日本語にすることができました。
しかし、Github actionsを使用しmain.ymlでRUNすると英語になってしまいました。
なかなか調べても解決しなかったので助けていただきたいです。
よろしくお願いいたします。

0 likes

2Answer

追記
今日はなぜか日本語で送られてきました。
特に何かいじったわけではありません。

0Like

browser.implicitly_wait(30)

こちらをurl = "HPのURL"の上に入れました。

が、日本語で来る日もあれば、英語の日もあります。

0Like

Your answer might help someone💌