twipla の参加者名とtwitter ID のリストをエクセルファイルに落とし込む
2019/01/17 11:35
2024/12/30 17:55
twipla で立てたイベントの参加者名と twitter ID を CSV 形式(エクセルでひらけます)で抽出するゴミみたいなワンライナースクリプトを雑に書いたのでメモっておく。
品質はゴミだけど、タイムラインにフラスタ企画立ててる人結構いるので必要な方はどうぞ。
使い方
(1) Chrome で twipla のイベントページを開く
(2) Cmd+Option+J で Chrome Developer Tool のコンソールを開く
(3) 次のコードを実行
console.log(
j$('.float_left.member_list.round_border li')
.toArray()
.map((e) =>
[
e.textContent.trim(),
e.lastChild['href'].slice(24, e.lastChild['href'].length),
].join(',')
)
.join('
')
)
↑ こんなかんじで 名前,TwitterID という形式の出力がズラズラでるので、それをコピー
(4) 出力を csv 形式で保存
(5) Windows の人はたぶんそのままファイルを開ける。mac の人は次のコマンドを実行してから開く(やらないと文字化けする)
$ nkf -s --overwrite sankasya.csv
nkf コマンドない人は brew かなんかで適当に入れてね
$ brew install nkf
シェルスクリプトバージョン
次のようなコードを書く
#!/bin/sh
if !(expr $1 : "[0-9]*$" >& /dev/null); then
echo "error: event_id is invalid."
exit 1
fi
event_id=$1
res=$(curl -Lso- "https://twipla.jp/events/printlist/$event_id")
count=$(echo $res | xmllint --html --encode utf-8 --xpath 'count(//html/body/div[1]/table/tr)' -)
for ((i=2; i < $count; i++)); do
item=$(echo $res | xmllint --html --encode utf-8 --xpath "//html/body/div[1]/table/tr[$i]/td[2]" -)
item=$(echo $item | sed -e 's/<br>/,/g')
item=$(echo $item | sed -e 's/<[/]*td>//g')
echo $item
done
引数にイベント id を指定するといい感じに .csv 形式の出力が得られる
$ ./function.sh 356796
@yoppiflower,青山吉能さん向け 想い出のパレード 協賛
@pegasus1109,ペガサス
...(中略)...
@gomi_ningen,ゴミ箱
...(中略)...
補足
あまりにも雑に作ったのでそのうち(twipla 側の変更で)動かなくなると思う
Pinned Articles
About
ウェブ界隈でエンジニアとして労働活動に励んでいる @gomi_ningen 個人のブログです
Tags
JavaScript
PowerShell
kibana
elasticsearch
fluentd
nginx
イベント
五十嵐裕美
村川梨衣
logrotate
IoT
Scala
Java
C言語
iputils
ICMP
WUG
mastodon
Swift
AWS
Clock
Windows
アーキテクチャ
PoEAA
iOS
DeviceFarm
プログラミング言語
OS
StepFunctions
Lambda
Serverless
terraform
ポエム
RHEL
ネットワーク
GraphQL
CloudWatch
Linux
Coreutils
network
nc
telnet
LinuxKernel
fpinscala
ELB
IAM
AppSync
EFS
Gradle
english