Drkcore

03 04 2011 Python Tweet

Amazon アフィリエイトのレポートをメールで自動で受けとる (Python)

Amazon アフィリエイトのレポートをメールで自動で受けとる 2011年版を見て、毎回アクセスして確認すんのは面倒なので僕もやっとこうと思った。

普段こういう作業ってperlでやってしまうことが多いのでPythonのmechanize使うのは初めてだ。あと、pyquery使うのも初めてだったりするが、jQuery知ってればサクっと使えてかなり便利。

#!/usr/bin/env python
# -*- encoding:utf-8 -*-

# kzfm <kerolinq@gmail.com>

from mechanize import Browser
import smtplib
from email.MIMEText import MIMEText
from email.Header import Header
from email.Utils import formatdate
from pyquery import PyQuery as pq

email = 'XXXXXXXX@gmail.com'
password = 'XXXXXXXXXXXX'
amazon_url = 'https://affiliate.amazon.co.jp/'

def get_amazon_data():
    br = Browser()
    br.set_handle_robots(False)
    br.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; \
     rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')]

    br.open(amazon_url)

    br.select_form(name="sign_in")
    br["email"] = email
    br["password"] = password

    response = br.submit()

    d = pq(response.get_data())
    return [data.text for data in d('div').filter('.data')]

def send_mail(data):

    from_addr = email
    to_addr   = email
    subject   = u'Amazonアフィリエイト'
    body      = u"""
発送済み商品合計: %s
売上合計: %s
注文済み商品: %s
クリック数: %s
あなたのコンバージョン: %s
""" % tuple(data)

    msg = MIMEText(body.encode("utf-8"),'plain','utf-8')
    msg['Subject'] = Header(subject, 'utf-8')
    msg['From'] = from_addr
    msg['To'] = to_addr
    msg['Date'] = formatdate()

    s = smtplib.SMTP('smtp.gmail.com', 587)
    s.ehlo()
    s.starttls()
    s.ehlo()
    s.login(email, password)
    s.sendmail(from_addr, to_addr, msg.as_string())
    s.close()

if __name__ == '__main__':
    amazon_data = get_amazon_data();
    send_mail(amazon_data)

11.04.03

4/1からちょっとデザインが変わったようで、紹介料率の項目がなくなっていたので修正した。

About

  • もう5年目(wishlistありマス♡)
  • 最近はPythonとDeepLearning
  • 日本酒自粛中
  • ドラムンベースからミニマルまで
  • ポケモンGOゆるめ

Tag

Python Deep Learning javascript chemoinformatics Emacs sake and more...

Ad

© kzfm 2003-2021