質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Gmail

GmailとはGoogleによって提供されているウェブメールのサービスのことです。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

URL

URL(ユニフォームリソースロケータ)とは、インターネット上のリソース(Webページや電子メールの宛先等)を特定するための形式的な記号の並びの事を言う。

メール

メールは、コンピュータネットワークを利用し、 情報等を交換する手段のことです。

Q&A

0回答

1167閲覧

Gmail受信ボックス内の特定のメールのURL取得

ino_way

総合スコア1

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Gmail

GmailとはGoogleによって提供されているウェブメールのサービスのことです。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

URL

URL(ユニフォームリソースロケータ)とは、インターネット上のリソース(Webページや電子メールの宛先等)を特定するための形式的な記号の並びの事を言う。

メール

メールは、コンピュータネットワークを利用し、 情報等を交換する手段のことです。

0グッド

1クリップ

投稿2021/04/11 12:59

編集2021/04/13 14:04

前提・実現したいこと

PythonでGmailAPIを使用して、受信ボックス内の特定のメールに記載されているURLを取得してアクセスするシステムを作っています。
受信ボックス内のメッセージの取得はできましたが、URLの抽出方法が不明のため、質問しました。

私は、はやたすさんのyoutubeでプログラミング学習を開始して、これが初めて自分で作成するプログラムです。
お忙しいところ恐縮ですが、先輩方のアドバイスを頂きたくよろしくお願いいたします。

発生している問題・エラーメッセージ

Traceback (most recent call last): File "a.py", line 51, in <module> gmail_get_messages() File "a", line 26, in gmail_get_messages for msg in msg_list['messages'].split(): AttributeError: 'list' object has no attribute 'split'

###エラーありのソースコード

import httplib2, os from apiclient import discovery import gmail # 先ほど作成したプログラム import imaplib import email import re # Gmailのサービスを取得 def gmail_get_service(): # ユーザー認証の取得 credentials = gmail.gmail_user_auth() http = credentials.authorize(httplib2.Http()) # GmailのAPIを利用する service = discovery.build('gmail', 'v1', http=http) return service # メッセージの一覧を取得 def gmail_get_messages(): service = gmail_get_service() # メッセージの一覧を取得 messages = service.users().messages() msg_list = messages.list(userId='me', maxResults=15).execute() # 取得したメッセージの一覧を表示 for msg in msg_list['messages'].split(): topid = msg['id'] msg = messages.get(userId='me', id=topid).execute() #URLを取得 len=[] lists=msg_list.split("\n") for list in lists: if list.find('http://') >-1 or list.find('https://') > -1: len.append(list) httpurl=[] for list in len: top=list.find('http') list=list[top:] a=re.search('[\sあ-んア-ン]',list) start=a.start() list=list[:start] httpurl.append(list) print("---") print(httpurl) # メッセージの取得を実行 gmail_get_messages()

試したこと

for msg in msg_list['messages'].split():

for msg in msg_list[0].split():

補足情報(FW/ツールのバージョンなど)

Windows Python 3.8.5

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2021/04/11 13:57

エラーが出たなら、エラーメッセージを提示しましょう エラーメッセージは、いらぬ翻訳省略しないで、出たそのママをコピペで提示してください
ino_way

2021/04/12 12:59

y_waiwai様 早速ご回答いただきありがとうございました。 エラーメッセージを添付しましたので、ご確認をお願いいたします。 エラーなしのソースコードもありますが、メール本文内のURLの取得(抽出)方法がわからないです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問