ログインしていなくても、高度な検索を介してTwitterにアクセスしてスクレイプできます。
GETリクエスト
基本的な検索リクエストを実行すると、次のようになります。
https://twitter.com/search?q=Babylon%205&src=typd
- q(エンコードされたクエリ)
- src(クエリのソースであると想定されます。つまり入力されます)
デフォルトでは、Twitterは上位25件の結果を返しますが、クリックする
all
とリアルタイムのツイートを取得できます。
https://twitter.com/search?f=realtime&q=Babylon%205&src=typd
JSONコンテンツ
より多くのツイートがAJAXを介してページにロードされます:
https://twitter.com/i/search/timeline?f=realtime&q=Babylon%205&src=typd&include_available_features=1&include_entities=1&last_note_ts=85&max_position=TWEET-553069642609344512-553159310448918528-BD1UO2FFu9QAAAAAAAAETAAAAAcAAAASAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
max_position
次のツイートをリクエストするために使用します
次のjson配列は、コンテンツをスクレイプするために必要なすべてを返します。
https://twitter.com/i/search/timeline?f=realtime&q=Babylon%205&src=typd
- has_more_items(bool)
- items_html(html)
- max_position(キー)
- refresh_cursor(キー)
DOM要素
DOM elements
抽出に使用できるリストがあります
著者のツイッターハンドル
div.original-tweet[data-tweet-id]
著者の名前
div.original-tweet[data-name]
著者のユーザーID
div.original-tweet[data-user-id]
投稿のタイムスタンプ
span._timestamp[data-time]
投稿のタイムスタンプ(ミリ秒)
span._timestamp[data-time-ms]
ツイートのテキスト
p.tweet-text
リツイート数
span.ProfileTweet-action–retweet > span.ProfileTweet-actionCount[data-tweet-stat-count]
好きな人の数
span.ProfileTweet-action–favorite > span.ProfileTweet-actionCount[data-tweet-stat-count]
資力