1. harファイル作成
chromeの開発者モードでhttps://twitter.com/<screen name>/followers
を開き、スクロール。
ネットワークのタブからharファイルをダウンロードできます。
(seleniumでも取得できるらしい)
2. harファイルのjsonをparse
cat twitter.har \
| jq -r '.log.entries | map(select(.request.url | test("/api/graphql/[^/]*/Followers"))) | map(.response.content.text)' >responses.txt
cat responses.txt \
| uniq \
| jq -r 'map(.)[]' \
| grep -v -e "^Rate limit" -e "^$" \
| while IFS= read l;do
echo "$l" \
| jq -r '.data.user.result.timeline.timeline.instructions[0].entries | map(.content.itemContent.user_results.result | {"rest_id":.rest_id,"name":.legacy.name,"screen_name":.legacy.screen_name,"description":.legacy.description})'
done
2の出力形式
{
"rest_id": "数列",
"name": "ユーザ名",
"screen_name": "スクリーン名",
"description": "概要欄"
}
...
(jqコマンドで@csv
などにすればcsvファイルにすることもできます)
まとめ
twitterのスクレイピングは利用規約違反。ダメ絶対!!
月$100払おう! 個人には高過ぎ