久しぶりに何か新しいことがしたくなって、pythonを勉強することにした。
ツイッターやLINEは仕事で使っているので定期的に自動でツイートしたりフォロー、アンフォローが出来ればちょっとは負荷がへるかもしれない。ということでpythonとseleniumを使ってツイッターを操作して色々してみる。
その過程を忘備録として残しておく。誰かの参考にでもなれば尚良しということで。
※たしかツイッター公式ではbotツールとか推奨されていなかったかと思います。なので何かあって凍結されても自己責任ということで。
① 準備
1. pythonのインストール
2. chromedriverの取得
3. 開発環境構築
この辺りは他のサイトで詳しく説明されているので割愛
とりあえず開発環境としてプロジェクト管理がやりやすそうな感じがする「pycharm」を使ってみました。
あとはgitとかあればいいけど、今のところはまだいいかな。
② プログラム
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
#<code>webdriverのインポート </code><code>from selenium import webdriver #chrome用のwebdriverの定義 driver = webdriver.Chrome("chromedriver.exe") driver.implicitly_wait(100) #ツッターのログイン画面呼び出し driver.get('https://twitter.com/login') #ログイン画面のテキストボックスの情報取得 loginid = driver.find_element_by_xpath('//*[@id="page-container"]/div/div[1]/form/fieldset/div[1]/input') password = driver.find_element_by_xpath('//*[@id="page-container"]/div/div[1]/form/fieldset/div[2]/input') #取得したテキストボックスにIDとパスワードを入力する loginid.send_keys("**********") password.send_keys("**********") #ログインボタンの情報取得とクリック subbtn = driver.find_element_by_xpath('//*[@id="page-container"]/div/div[1]/form/div[2]/button') subbtn.submit() |
内容的には大きな問題はない。でも、注意点が1点。
どうやら、chromeでは動作するけど、IEでは無理っぽい
※これはwebdriver
がchrome用だからIEが動かないよっていう訳でなくIE用のwebdriverでやっても同じでした。(もし、IEでログイン出来たぜぇ~という人がいましたらやり方を教えて下さいm(_ _)m)
問題個所は此処(ここで躓きました)
1 2 3 4 5 6 |
#ログイン画面のテキストボックスの情報取得 loginid = driver.find_element_by_xpath('//*[@id="page-container"]/div/div[1]/form/fieldset/div[1]/input') password = driver.find_element_by_xpath('//*[@id="page-container"]/div/div[1]/form/fieldset/div[2]/input') #ログインボタンの情報取得とクリック subbtn = driver.find_element_by_xpath('//*[@id="page-container"]/div/div[1]/form/div[2]/button') |
正確なことは分からなかったけど、ツイッターのCSSの関係なのかテキストボックスとログインボタンの情報が
1 |
driver.find_element_by_xpath('//*[@id="page-container"]/div/div[1]/form/fieldset/div[1]/input') |
のように「driver.find_element_by_xpath」でないと取得できないみたい。「driver.find_element_by_ID」や「driver.find_element_by_name」では無理でした。
ずーっとIDやNAMEで取得しようとして動かなくて何故だ~~ってなってました。
ここだけ取得できれば、あとは単純にログインIDとパスワードを入力させてログインさせるだけなので余裕ですww
で、あとは実行すれば・・・ハイ、ログイン出来た~~ヾ(*´∀`*)ノ