実現したいこと
PC上にある動的サイトのスクレイピングをするpythonを、
例えばGoogleフォームの送信時に実行することはできますか。
プログラムの内容は、スプレッドシートにある入力について、スクレイピングします。
前提
できればGoogleフォームだと嬉しいですが、
スマホや他端末など、どの端末からも実行できるようにさせたいです。
何卒、よろしくお願いいたします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答4件
0
自己解決
解決出来ました!!お騒がせしました
投稿2023/10/26 22:41
総合スコア7
0
ChatGPTの回答
以下のような動きを実現するプログラム、システムの構成を教えてください。 - あるPCにpythonで書かれたプログラムがある。 - そのPCでgmailメールの受信を定期的にチェックする。 - そのメールに特定の文言が含まれていたら、そのpythonプログラムを実行する
指定された動きを実現するためには、いくつかのステップが必要です。以下にそれらのステップと、それぞれのステップで使用するツールや技術について説明します。
-
メールの受信を定期的にチェックする仕組みの準備:
- Gmailのメール受信をチェックするためには、IMAPプロトコルを使用してメールボックスにアクセスすることが一般的です。Pythonのライブラリを使用してIMAP接続を確立し、メールを取得できます。代表的なライブラリには
imaplib
やpyzmail
があります。
- Gmailのメール受信をチェックするためには、IMAPプロトコルを使用してメールボックスにアクセスすることが一般的です。Pythonのライブラリを使用してIMAP接続を確立し、メールを取得できます。代表的なライブラリには
-
定期的な実行のスケジューリング:
- プログラムを定期的に実行するためには、スケジューリングツールを使用します。代表的なツールには
cron
(Unix系システム)やTask Scheduler
(Windows)があります。これにより、一定の時間間隔で指定したプログラムを起動できます。
- プログラムを定期的に実行するためには、スケジューリングツールを使用します。代表的なツールには
-
メールの解析と特定の文言の検出:
- メール本文やタイトルから特定の文言を検出するために、Pythonの文字列操作や正規表現を使用できます。メール本文を解析し、特定の文言が含まれているかどうかを判定します。
-
条件を満たした場合のプログラムの実行:
- 特定の文言がメールに含まれている場合には、指定されたPythonプログラムを実行する必要があります。Pythonの
subprocess
モジュールを使用して外部プログラムを実行することができます。
- 特定の文言がメールに含まれている場合には、指定されたPythonプログラムを実行する必要があります。Pythonの
以下は、上記のステップを元にした簡単なサンプルコードです。ただし、セキュリティには十分注意してください。実際のシステムでは、認証情報の保護やエラーハンドリング、セキュリティ対策を適切に行う必要があります。
python
1import imaplib 2import email 3import re 4import subprocess 5 6# GmailのIMAPサーバーに接続 7mail = imaplib.IMAP4_SSL("imap.gmail.com") 8mail.login("your_email@gmail.com", "your_password") 9 10# メールボックスを選択 11mail.select("inbox") 12 13# 特定の文言を検索する 14search_criteria = '(UNSEEN SUBJECT "特定の文言")' 15status, email_ids = mail.search(None, search_criteria) 16 17# 条件を満たすメールがある場合 18if status == "OK" and email_ids[0]: 19 for email_id in email_ids[0].split(): 20 # メールを取得 21 status, msg_data = mail.fetch(email_id, "(RFC822)") 22 raw_email = msg_data[0][1] 23 msg = email.message_from_bytes(raw_email) 24 25 # ここでメールの解析や特定の処理を行う 26 # 例: メール本文に特定のリンクが含まれていたら、関連するプログラムを実行する 27 28 # メールを既読にする 29 mail.store(email_id, "+FLAGS", "\\Seen") 30 31# IMAP接続を終了 32mail.logout()
このコードはあくまで簡単な例であり、実際の使用にはセキュリティとエラーハンドリングの面で注意が必要です。また、パスワードをコードに直接埋め込むことはセキュリティリスクとなります。安全な方法で認証情報を取り扱う方法を検討してください。
投稿2023/08/31 04:19
総合スコア38345
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
技術的に難しくないのは、特定の内容のメールを送信して、PC上のメールソフトでそれを検知してプログラム起動することです。少なくともBecky!なら普通に出来ます(有料ソフトですが)。フォルダー自動振り分けと同じように、差出人や件名などでセレクトして指定プログラムを起動するという設定があります。他にも出来るメールソフトはあるんじゃないかと思います。
⇒ ググると、Outlookはレジストリを修正すれば出来るという記事がありました。VBAを書いても出来そうですが。Thunderbirdは軽くググっただけでは見つからず。
PCにssh等で接続してプログラムを起動する方法もありますが、インターネットから安全にssh接続できるように設定するのは十分なセキュリティーの技術が必要ですし、Googleフォームからssh接続できるのか知りません(途中に何か入れれば出来そうですが)。
あとは一定時間毎にインターネット上の「何か」をチェックに行って、その「何か」に実行指示があると指定プログラムを起動するようなプログラムを書くか。
投稿2023/08/30 10:26
総合スコア86071
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
Chrome リモート デスクトップを使ったらできるんじゃないかと思います。
参考
https://pc.watch.impress.co.jp/docs/topic/feature/1495760.html
投稿2023/08/30 10:06
総合スコア1456
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2023/10/27 01:17