Skip to content

Instantly share code, notes, and snippets.

@taikomegane
Created July 1, 2017 08:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save taikomegane/d4cdf71701011c27e5eb42dbe9cce56d to your computer and use it in GitHub Desktop.
Save taikomegane/d4cdf71701011c27e5eb42dbe9cce56d to your computer and use it in GitHub Desktop.
getTweet
from selenium import webdriver
import csv, codecs
# ユーザIDとパスワードを指定 今回は空白
USER = ""
PASS = ""
# PhantomJSのドライバを得る
browser = webdriver.PhantomJS()
browser.implicitly_wait(3) #念のため3秒待機
# Twitterにアクセス
url = "https://twitter.com/"
browser.get(url)
browser.save_screenshot("toppage.png") #証拠写真撮影
#ログインボタンをクリック
e = browser.find_element_by_css_selector(".StreamsLogin")
e.click()
browser.implicitly_wait(10) #反映に時間がかかるので待つ
browser.save_screenshot("login.png") #証拠写真撮影
# ユーザIDとパスワードを入力
e = browser.find_element_by_css_selector(".email-input")
e.clear()
e.send_keys(USER) #ここでユーザIDを入力
e = browser.find_element_by_css_selector("input[type=password]")
e.clear()
e.send_keys(PASS) #ここでパスワードを入力
browser.implicitly_wait(5) #念のため5分待って
browser.save_screenshot("login_with_info.png") #証拠写真撮影
#送信ボタンをクリック
e = browser.find_element_by_css_selector(".submit")
e.click()
browser.implicitly_wait(5) #念のため5分待って
browser.save_screenshot("success.png") #証拠写真撮影
#マイページに移動
e = browser.find_element_by_css_selector(".DashboardProfileCard-bg")
e.click()
browser.implicitly_wait(3) #念のため3秒待って
browser.save_screenshot("mypage.png") #証拠写真撮影
# ツイートを抽出
tweets = browser.find_elements_by_css_selector(".tweet-text")
#csvに読み込む用のリストを生成
tweet_list = []
# ツイートの出力
for tweet in tweets:
t = tweet.text #ツイートのテキストを出力
tweet_list.append(t) #リストに追加
print(t) #ターミナルに出力
# csvに入れまくる
with codecs.open("tweets.csv", "w", "utf-8") as fp:
writer = csv.writer(fp, delimiter=",", quotechar='"')
writer.writerow(["tweet"])
for tweet in tweet_list:
writer.writerow([tweet])
# ブラウザを終了
browser.quit()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment