snscrape sudah tidak bisa digunakan karena ada perubahan fitur dari twitter. Silahkan gunakan `tweet-harvest` yang sudah saya buat sendiri untuk keperluan riset, skripsi, ataupun thesis
Artikel ini membahas tentang snscrape, sebuah alat yang kuat untuk mengambil data dari Twitter, baik itu untuk keperluan penelitian, jurnalistik, atau sekadar penasaran. Dalam tutorial ini, kita akan membahas dasar-dasar penggunaan snscrape untuk mengambil data Twitter.
Untuk mengikuti tutorial ini, kamu bisa copy google colab ini biar lebih mudah: https://colab.research.google.com/drive/1pTMHlIn0aIk97mvrH3wQAa-DRmEtzBQA
Cheatsheet Twitter Search Query
Sebelum kita membahas snscrape, mari kita ulas beberapa operator pencarian yang dapat kamu gunakan di Twitter. Operator-operator ini memungkinkan kamu untuk menyaring tweet berdasarkan kata kunci, hashtag, tanggal, lokasi, dan lain sebagainya. Berikut adalah beberapa contoh:
: tweet dari pengguna tertentufrom:username
Misalnya, mencari
akan mengembalikan tweet hanya dari akun Twitter Barack Obama.from:BarackObama
: tweet yang mengandung hashtag tertentu#hashtag
Misalnya, mencari
akan mengembalikan tweet yang mengandung hashtag#WorldCup
.#WorldCup
: tweet yang menyebutkan pengguna tertentuto:username
Misalnya, mencari
akan mengembalikan tweet yang menyebutkan Elon Musk.to:elonmusk
: tweet yang mengandung keyword1 atau keyword2keyword1 OR keyword2
Misalnya, mencari
akan mengembalikan tweet yang mengandung keyword "pizza" atau keyword "pasta".pizza OR pasta
: tweet yang diposting antara dua tanggalsince:yyyy-mm-dd until:yyyy-mm-dd
Misalnya, mencari
akan mengembalikan tweet yang mengandung keyword "COVID19" yang diposting antara 1 Januari 2022 dan 31 Januari 2022.COVID19 since:2022-01-01 until:2022-01-31
: tweet yang diposting di dekat lokasi tertentunear:city within:km
Misalnya, mencari
akan mengembalikan tweet yang diposting dalam jarak 15 kilometer dari Jakarta.near:Jakarta within:15km
: tweet yang mengandung key1 dan key2key1 AND key2
Misalnya, mencari
hanya akan mengembalikan tweet yang mengandung "cat" dan "dog".cat AND dog
: tweet yang mengandung frase tepat"presiden Indonesia"
Misalnya, mencari
hanya akan mengemb alikan tweet yang mengandung frase "presiden Indonesia"."presiden Indonesia"
: tweet dengan jumlah balasan minimum Misalnya , menambahkanmin_replies
pada pencarian kamu hanya akan mengembalikan tweet yang memiliki setidaknya 10 balasan.min_replies:10
: tweet dengan jumlah like (favorit) minimummin_faves
Misalnya, menambahkan
pada pencarian kamu hanya akan mengembalikan tweet yang memiliki setidaknya 100 like.min_faves:100
: tweet dengan jumlah retweet minimummin_retweets
Misalnya, menambahkan
pada pencarian kamu hanya akan mengembalikan tweet yang memiliki setidaknya 50 retweet. Untuk daftar lengkap operator, lihat dokumentasi Twitter Search API.min_retweets:50
Demo menggunakan Browser hanya dengan Google Colab dan Ekspor CSV
Jika kamu tidak memiliki Python terinstal atau lebih suka menggunakan solusi berbasis browser, kamu dapat menggunakan Google Colab untuk menjalankan perintah snscrape dan mengekspor hasilnya sebagai file CSV. Berikut caranya:
- Buka Google Colab dan buat notebook baru.
- Instal snscrape dan pandas dengan menjalankan:
!pip3 install git+https://github.com/JustAnotherArchivist/snscrape.git
!pip install pandas
- Gunakan perintah snscrape untuk mengambil data Twitter. Misalnya, untuk mengekstrak semua tweet yang mengandung kata Presiden dengan bahasa Indonesia dan memiliki jumlah like minimum 10.000, kamu dapat menjalankan:
import os
# Menggunakan library OS untuk memanggil perintah CLI di Python
os.system("snscrape --jsonl --max-results 10 twitter-search 'Presiden lang:id min_faves:10000'> presiden.json")
Ini akan menyimpan hasilnya dalam file JSON Lines yang disebut presiden.json. 4. Konversi file JSON Lines menjadi file CSV dengan menjalankan:
import pandas as pd
df = pd.read_json('tweets.json', lines=True)
df.to_csv('tweets.csv', index=False)
Ini akan menyimpan hasilnya dalam file CSV yang disebut tweets.csv.
Demo menggunakan Python, snscrape, dan Jupyter Notebook
Jika kamu sudah terbiasa dengan Python dan Jupyter Notebook, kamu dapat menggunakan snscrape langsung di notebook kamu. Berikut caranya:
- Instal snscrape dengan menjalankan
!pip3 install git+https://github.com/JustAnotherArchivist/snscrape.git
!pip install pandas
- Import modul snscrape dan tentukan kueri pencarian kamu. Misalnya, untuk mengekstrak semua tweet yang mengandung hashtag
yang diposting sejak 20 Januari 2023, kamu dapat menjalankan:#datascience
import snscrape.modules.twitter as sntwitter
import pandas as pd
# Tentukan kueri pencarian
query = '#datascience since:2023-01-20'
# Ambil tweet dan simpan dalam sebuah list
tweets = []
for tweet in sntwitter.TwitterSearchScraper(query).get_items():
tweets.append([tweet.date, tweet.rawContent])
# Konversi list ke DataFrame dan simpan sebagai file CSV
df = pd.DataFrame(tweets, columns=['date', 'rawContent'])
df.to_csv('tweets.csv', index=False)
Ini akan menyimpan hasilnya dalam file CSV yang disebut tweets.csv.
Demo menggunakan Python lengkap dengan snscrape
Terakhir, jika kamu ingin menggunakan snscrape dalam sebuah skrip Python lengkap, kamu dapat melakukannya dengan mengimpor modul snscrape dan menggunakan fungsinya. Berikut contohnya:
import snscrape.modules.twitter as sntwitter
import pandas as pd
# Tentukan kueri pencarian
query = '#datascience since:2023-01-20'
# Ambil tweet dan simpan dalam sebuah list
tweets = []
for tweet in sntwitter.TwitterSearchScraper(query).get_items():
tweets.append([tweet.date, tweet.rawContent])
# Konversi list ke DataFrame dan simpan sebagai file CSV
df = pd.DataFrame(tweets, columns=['date', 'rawContent'])
df.to_csv('tweets.csv', index=False)
Ini akan menyimpan hasilnya dalam file CSV yang disebut tweets.csv.
Dan itulah semuanya! Dengan snscrape, kamu dapat dengan mudah mengambil data dari Twitter dan mendapatkan wawasan yang berharga. Selamat mencoba!