Skip to content

Instantly share code, notes, and snippets.

@taikomegane
Last active July 1, 2017 11:15
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/7e9ecbe5f7f1d6ec280d8a2cf016855e to your computer and use it in GitHub Desktop.
Save taikomegane/7e9ecbe5f7f1d6ec280d8a2cf016855e to your computer and use it in GitHub Desktop.
getTweet_var.java
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
public class GetTweet {
public static void main(String[] args) throws InterruptedException {
System.setProperty("webdriver.chrome.driver", "./driver/chromedriver");
//ユーザIDとパスワードを指定
String user = "";
String pass = "";
long millis = 5000;
//ドライバを生成
WebDriver driver = new ChromeDriver();
//Twitterにアクセス
String url = "https://twitter.com";
driver.get(url);
Thread.sleep(millis); //ちょっと休憩
//ユーザIDとパスワードを入力
WebElement e = driver.findElement(By.id("signin-email"));
e.clear();
e.sendKeys(user); //ユーザIDを入力
e = driver.findElement(By.id("signin-password"));
e.clear();
e.sendKeys(pass); //パスワードを入力
Thread.sleep(millis); //ちょっと休憩
//ログインボタンをクリック
e = driver.findElement(By.xpath("//*[@id='front-container']/div[2]/div[2]/form/table/tbody/tr/td[2]/button"));
e.click();
Thread.sleep(millis); //ちょっと休憩
//マイページに移動
e = driver.findElement(By.cssSelector(".DashboardProfileCard-bg"));
e.click();
Thread.sleep(millis); //ちょっと休憩
//ツイート情報を取得
List<WebElement> tweetsElements = driver.findElements(By.cssSelector(".tweet-text"));
//csv出力用のリストを生成
ArrayList<String> tweets = new ArrayList<String>();
//ツイート情報から、テキストだけ取り出してコンソール出力
for (WebElement t : tweetsElements){
String tweet = t.getText();
tweets.add(tweet); //リストにも追加しておく
System.out.println(tweet);
}
try {
//出力先を作成する
FileWriter fw = new FileWriter("./output/test.csv", false); //※1
PrintWriter pw = new PrintWriter(new BufferedWriter(fw));
//csvの頭作成
pw.print("tweet\n");
//内容を指定する
for(String tweet: tweets){
pw.print(tweet);
pw.println();
}
//ファイルに書き出す
pw.close();
//終了メッセージを画面に出力する
System.out.println("出力が完了しました。");
} catch (IOException ex) {
ex.printStackTrace();
}
//ブラウザを閉じる
driver.close();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment