Back to blog

Crawl Data Twitter dengan Python dan snscrape - Juni 2023

Last updated on July 2, 2024

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:

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:

  1. Buka Google Colab dan buat notebook baru.
  2. Instal snscrape dan pandas dengan menjalankan:
!pip3 install git+https://github.com/JustAnotherArchivist/snscrape.git
!pip install pandas
  1. 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:

  1. Instal snscrape dengan menjalankan
!pip3 install git+https://github.com/JustAnotherArchivist/snscrape.git
!pip install pandas
  1. Import modul snscrape dan tentukan kueri pencarian kamu. Misalnya, untuk mengekstrak semua tweet yang mengandung hashtag
    #datascience
    yang diposting sejak 20 Januari 2023, kamu dapat menjalankan:
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!