Twitterのツイート/フォロー/フォロワー/いいね数を取得
GoogleAppsScriptを使用したTwitterのスクライピングです。
ソースコード
twitter.gs// Twitterのツイート/フォロー/フォロワー/いいね数を取得する
function getTwitterData() {
// HTML取得
var url = 'https://twitter.com/TwitterJP';
var postheader = {
"timeout":"50000"
}
var parameters = {
"method":"get",
"muteHttpExceptions": true,
"headers": postheader
}
var html = UrlFetchApp.fetch(url, parameters).getContentText('UTF-8');
// HTML解析
var data = {};
var items = finds(html, '<li class="ProfileNav-item', '</li>');
for (var i=0; i<items.length; i++) {
var navs = finds(items[i], 'data-nav="', '"');
var datas = finds(items[i], 'data-count=', ' ');
if (navs.length == 1 && datas.length == 1) {
data[navs[0]] = datas[0];
}
}
// データ出力
Logger.log(data); // [18-11-27 17:20:01:485 JST] {favorites=627, followers=2230809, following=127, tweets=9022}
}
// 開始終了に挟まれた文字列の配列を取得する
function finds(html, start, end) {
var results = [];
var index = 0;
while (true) {
var s = html.indexOf(start, index);
if (s != -1) {
var e = html.indexOf(end, s + start.length);
if (e != -1) {
results.push(html.substring(s + start.length, e));
index = e + end.length;
continue;
}
}
break;
}
return results;
}
補足
- 改善案
- GoogleスプレッドシートからURLを取得する
- Googleスプレッドシートに結果を書き込む
- 直近のツイートを取得する
- ツイート一覧を取得する
- 素直にAPI使ったほうが...。