2019年11月16日土曜日

開発環境

退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング (Al Sweigart(著)、相川 愛三(翻訳)、オライリージャパン)の第Ⅱ部(処理の自動化)、11章(Webスクレイピング)、11.10(演習プロジェクト)、11.10.1(コマンドライン電子メーラー)の解答を求めてみる。

コード

#!/usr/bin/env python3
from selenium import webdriver
import sys
import time

text = sys.argv[1]
PASSWORD = 'YOUR PASSWORD'
browser = webdriver.Firefox()
url = 'https://twitter.com'
browser.get(url)

print('11-15')
# elementは一つだけ取得
try:
    username_elem = browser.find_element_by_name('session[username_or_email]')
    password_elem = browser.find_element_by_name('session[password]')
except Exception as err:
    print(err)
    sys.exit(1)

username_elem.send_keys('mkamimura')
time.sleep(2)
password_elem.send_keys(PASSWORD)
time.sleep(2)
password_elem.submit()

# 以降は二段階認証があるからうまくいかない
# try:
#     div_elem = browser.find_element_by_class_name(
#         'public-DraftStyleDefault-block public-DraftStyleDefault-ltr')
# except Exception as err:
#     print(err)
#     sys.exit(1)

# div_elem.send_keys(text)

# tweet_elem = browser.find_element_by_class_name(
#     'css-901oao css-16my406 r-gwet1z r-ad9z0x r-bcqeeo r-qvutc0')

# tweet_elem.click()

入出力結果(Zsh、cmd.exe(コマンドプロンプト)、Terminal、Jupyter(IPython))

% ./sample15.py 'Test, Selenium, Firefox'
11-15
%

もし二段階認証でも投稿できるような問題の解決方法あるなら、原著は第2版出たみたいだから、そこに解決方法が記述されてて、しかも邦訳が出るなら早く出てくれると嬉しいかも。

0 コメント:

コメントを投稿