2019-05-21に投稿

seleniumを使ってtwitterにログインしてTweetする

seleniumを使ってtwitterにログインしてTweetする

🐶今日は、seleniumを使ってtwitterにログインしてTweetする

🐍API条件きつくて辛い。。

完成したコード

🐶完成したコードをおいとくで

🐍書き換えの場所は
+ twitterID
+ twitterPass
+ tweet
+ webdriver.Chrome
🐍ここはしっかり変えないと動かないで

from selenium import webdriver
import time

#driverの定義
driver = webdriver.Chrome("C:/chromedriver.exe")

#twitterIDとtwitterPassを入力
twitterID="TwitterID"
twitterPass="パスワード"

#ツイート内容を入力
tweet="tweet内容 https://www.coderecipe.org/"

#twitter Login
def twitterLogin(twitterID,twitterPass):
    driver.get('https://www.twitter.com/')
    time.sleep(1)
    #ログインをクリック
    driver.find_element_by_css_selector('#doc > div > div.StaticLoggedOutHomePage-content > div.StaticLoggedOutHomePage-cell.StaticLoggedOutHomePage-utilityBlock > div.StaticLoggedOutHomePage-signupBlock > div.StaticLoggedOutHomePage-noSignupForm > div > a.js-nav.EdgeButton.EdgeButton--medium.EdgeButton--secondary.StaticLoggedOutHomePage-buttonLogin').click()
    time.sleep(2)
    #IDを入力
    driver.find_element_by_css_selector('#page-container > div > div.signin-wrapper > form > fieldset > div:nth-child(2) > input').send_keys(twitterID)
    time.sleep(2)
    driver.find_element_by_css_selector('#page-container > div > div.signin-wrapper > form > fieldset > div:nth-child(3) > input').send_keys(twitterPass)
    time.sleep(2)
    driver.find_element_by_css_selector('#page-container > div > div.signin-wrapper > form > div.clearfix > button').click()
    time.sleep(2)

def twitterTweet(tweet):
    driver.find_element_by_css_selector('#global-new-tweet-button').click()
    time.sleep(2)
    driver.find_element_by_css_sedriver = webdriver.Chrome("C:/chromedriver.exe")lector('#Tweetstorm-tweet-box-0 > div.tweet-box-content > div.tweet-content > div.RichEditor.RichEditor--emojiPicker.is-fakeFocus > div.RichEditor-container.u-borderRadiusInherit > div.RichEditor-scrollContainer.u-borderRadiusInherit > div.tweet-box.rich-editor.is-showPlaceholder').send_keys(tweet)
    time.sleep(2)
    driver.find_element_by_css_selector('#Tweetstorm-tweet-box-0 > div.tweet-box-content > div.TweetBoxToolbar > div.TweetBoxToolbar-tweetButton > span > button.SendTweetsButton.EdgeButton.EdgeButton--primary.EdgeButton--medium.js-send-tweets').click()
    time.sleep(120)

twitterLogin(twitterID,twitterPass)
twitterTweet(tweet)

find_element_by_css_selector

🐶find_element_by_css_selectorでCSSセレクターに一致する最初の要素をとってくるねん。find_elements_by_css_selectorにするとリスト要素になるからそこも注意な
🐍CSSセレクターは、検証ツールとかからコピーできるよ。

time.sleep(2)

🐶seleniumはブラウザを動かすツールやからレスポンス待つ時間を入れないと要素を読み込まない時があるねん
🐍秒数の2秒はデータやサーバーで変わるよ。

.click()

🐶これは指定する動作をクリックする命令や。
🐍秒数の2秒はデータやサーバーで変わるよ。

記事のポイント

🐶ポイントをまとめると

  • find_element_by_css_selectorで場所指定
  • .click()でクリック動作
  • time.sleep(2)は応答待ちで使う

🐍seleniumにはまだまだ色々な機能があるよ

Originally published at www.coderecipe.org

view_list ワイと学ぶPython
第1回 Pythonで計算機を作る
第2回 seleniumを使ってWebサイトを表示する
第3回 seleniumを使ってtwitterにログインしてTweetする
第4回 パパ活Python 1桁の足し算全パターンを生成
第5回 パパ活Python 1桁の引き算全パターンを生成

aocory

Crieitは個人で開発中です。 興味がある方は是非記事の投稿をお願いします! どんな軽い内容でも嬉しいです。
なぜCrieitを作ろうと思ったか

また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!

こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください!

ボードとは?

関連記事

コメント