注意
Twitter規約的には、スクレイピングだめらしいので、実行しない方向で!
この記事は、無限スクロールサイトのスクレイピングのコツだと思って見て下さいね。
TwitterAPIは、過去1週間分までしかデータを取得できません。
しかし、ブラウザでしたにスクロールすると結構なデータがとれます。(おおよそ3ヶ月位?)
どうやってとっているのかを探っていると、以下の記事を発見しました。
https://qiita.com/keitakurita/items/36c4381809c8e0c28a89
なるほど、HTMLの中に取得するツイートのIDとデータが埋め込まれているのか……
# HTMLを解析
import bs4
# ベースURLからデータを取得
url_data = urllib.request.urlopen('https://twitter.com/nnahito')
# HTMLデータを取得
html_data = url_data.read()
soup = bs4.BeautifulSoup(html_data)
# min-positionを抽出
min_position = soup.select('div[data-min-position]')[0].attrs['data-min-position']
これでmin_position
に次に取得する番号が取得できます。
というわけで、自分も一からクローラーを作ってみました。
よかったらどうぞ
↓
https://nnahito.com/articles/7