in my 雑記

プログラミング bump 日々のことなど

python3 で 捨てアド の 作成 と 観覧 を行う

f:id:inmyzakki:20170902164248p:plain
pythonネタです。
pythonで捨てアドの作成&観覧がしたかったので、
モジュールとかapiがないか、探したけどなかったので作りました。

出来ること

・捨てアドの作成ができること
・作った捨てアドの観覧ができること

プログラム

とてもシンプルで、作成、観覧ができる関数を二つ作っただけです。
creatMailを呼べば読んだ数だけメールアドレスを作れます。
また作ったアドレスをgetMailに渡せば好きな時にメールを観覧できます。
以下ソースです。

##############インポート##############
from bs4 import BeautifulSoup
import requests
import re
##############インポート##############



##############固定値##############
# タグ外し正規表現
p = re.compile(r"<[^>]*?>")
##############固定値##############



##############関数群##############
# メールアドレスを作成する
# return メールアドレス
def creatMail():
    payload = {
    'account_member[login]': ''
    }
    s = requests.Session()
    r = s.get('http://sute.jp')
    soup = BeautifulSoup(r.text, 'html.parser')
    address = soup.find_all("input", id="account_member_login")[0].get("value")
    payload['account_member[login]'] = address
    s.post('http://sute.jp/signup', data=payload)
    return address

# メールアドレスを取得する
# in メールアドレス
# return メール内容配列 [0]:タイトル [1]:本文
def getMail(address):
    s = requests.Session()
    payload = {
    'user_session[login]': address
    }
    r = s.post('http://sute.jp/signin', data=payload)
    soup = BeautifulSoup(r.text, 'html.parser')
    mails = soup.find_all("li",{"class":"message"})
    maillist = []
    for mail in mails:
        m = []
        r = s.get("http://sute.jp/mails/"+mail.get("data-id"))
        soup = BeautifulSoup(r.text, 'html.parser')
        title = soup.find_all("h2")[0].text
        hons = soup.find_all("p",{'class':''})
        hon = ""
        for data in hons:
            hon = hon + "\n" + p.sub("", str(data))
        m.append(title)
        m.append(hon[1:])
        maillist.append(m)
    return maillist
##############関数群##############



##############メイン##############
# メールアドレス作成
address = creatMail()
print("メールアドレスは「" + address + "@sute.jp」です。")

# メール取得
mails = getMail(address)
print("---------以下のメールを受信---------")
for mail in mails:
    print("-----------------")
    print(mail[0]) #タイトル
    print(mail[1]) #本文
    print("-----------------")
##############メイン##############

おわり

pythonにはHTTPライブラリがいくつかあるけど、requestsはとても便利。
使い方がシンプルでわかりやすいし、もはやこれ以外使う気がしない。
今回、捨てアド作成には以下のサイトを利用しています。
サイトの規則で、大量のメールアドレスの作成は禁止しているようです。
下の利用規約を読んでご利用ください。

sute.jp

.entry-content { font-size:20px; }