Daftar Isi
Apa itu Snscrape (Python)?
Mengikis adalah pustaka Python sumber terbuka yang memungkinkan Anda mengekstrak data dari layanan jaringan sosial (SNS). Untuk X.com, ini termasuk menghapus profil pengguna, hashtag, permintaan pencarian, tweet (utas tunggal atau sekitarnya), daftar posting dan tren.
Karena kami menggunakan Snscrape dan bukan Twitter API, kami tidak perlu khawatir tentang batasan scraping, sehingga Anda dapat menggabungkan data X.com untuk kasus penggunaan yang berbeda.
Mempersiapkan proyek scraping Twitter (X.com).
Untuk memulai proyek scraping X.com, kami membuka direktori baru di VScode (atau IDE pilihan Anda) dan membuka terminal. Dari sana, cukup instal Snscrape dengan pip:
Semua file yang diperlukan akan diunduh secara otomatis. Namun, agar dapat berfungsi, Anda harus menginstal Python 3.8 atau lebih tinggi. Untuk memeriksa versi Python Anda, gunakan perintah python –version di terminal Anda.
Catatan:Jika Anda belum memilikinya, instal juga pandas dengan pip install pandas. Kami menggunakannya untuk memvisualisasikan data yang diambil dan mengekspor semuanya ke file CSV.
Selanjutnya, buat file baru bernama tweet-scraper.py dan impor dependensi di atas:
import snscrape.modules.twitter as sntwitter
import pandas as pd
Dan sekarang kita bisa mulai mengumpulkan datanya!
Pahami struktur jawaban X.com
Sama seperti website, kita perlu memahami struktur data Twitter yang disediakan oleh Snscrape sehingga kita dapat memilih bit data yang benar-benar kita minati.
Katakanlah kita ingin tahu apa yang sedang dibicarakan orang mengenai suatu topik Pengikisan web berbicara. Untuk memungkinkan hal ini, kita perlu mengirimkan permintaan ke Twitter melalui modul Twitter Snscrape seperti ini:
query = "web scraping"
for tweet in sntwitter.TwitterSearchScraper(query).get_items():
print(vars(tweet))
break
Metode .TwitterSearchScraper() pada dasarnya mirip dengan menggunakan bilah pencarian Twitter di situs web. Kami meneruskannya dengan kueri (web scraping dalam kasus kami) dan mendapatkan item yang dihasilkan dari pencarian.
Metode Snscrape Lainnya
Berikut adalah daftar semua metode lain yang dapat Anda gunakan untuk menanyakan Twitter menggunakan modul Sntwitter:
- TwitterSearchScraper
- TwitterPenggunaScraper
- Pengikis Profil Twitter
- TwitterHashtagScraper
- TwitterTweetScraperMode
- TwitterTweetScraper
- TwitterListPostsScraper
- TwitterTrendsScraper
Sedangkan fungsi vars() mengembalikan semua atribut suatu elemen, dalam hal ini tweet.
JSON yang dikembalikan berisi semua informasi yang terkait dengan tweet tersebut. Pada gambar tersebut kami telah menyematkan tiga hal yang paling penting bagi kami: data tweet, konten tweet (yaitu tweet itu sendiri) dan pengguna yang men-tweetnya.
Jika Anda sudah bekerja dengan data JSON, mengakses nilai bidang ini mudah:
- tweet.tanggal
- tweet.konten
- tweet.pengguna.nama pengguna
Yang ketiga berbeda karena kita tidak ingin keseluruhan nilai "pengguna", melainkan mengakses kolom "pengguna" lalu turun ke kolom "nama pengguna".
Menghapus permintaan Twitter yang rumit di Snscrape
Meskipun ada beberapa cara untuk membuat kueri Anda, cara termudah adalah menggunakan bilah pencarian Twitter untuk menghasilkan kueri dengan parameter yang kita perlukan.
Pertama, buka Twitter dan masukkan permintaan pencarian yang Anda inginkan:
Dan sekarang klik Pencarian Lanjutan:
Sekarang isi formulir dengan parameter yang sesuai dengan kebutuhan Anda. Untuk contoh ini kami akan menggunakan informasi berikut:
Bidang | Nilai |
---|---|
Kata-kata yang tepat | Pengikisan web |
Bahasa | Bahasa inggris |
Sejak tanggal | 12 Januari 2022 |
Hingga saat ini | 12 Juni 2023 |
Catatan: Anda juga dapat mengatur akun dan filter tertentu serta menggunakan kombinasi kata yang tidak terlalu membatasi.
Setelah selesai, klik tombol cari di kanan atas.
Kueri khusus telah dibuat yang dapat kita gunakan dalam kode untuk diteruskan ke metode TwitterSearchScraper().
Tetapkan batas untuk scraper Twitter Anda
Ada BANYAK tweet di Twitter. Ada banyak sekali tweet yang dihasilkan setiap hari. Jadi mari kita tetapkan batas jumlah tweet yang ingin kita hapus dan hentikan perulangan setelah kita mencapai batas tersebut.
Menetapkan batasnya sangat sederhana:
Namun, jika kita sekedar mencetak tweet, sebenarnya tidak akan pernah ada batasannya. Untuk membuatnya berfungsi, kita perlu menyimpan tweet dalam daftar.
Dengan dua elemen ini kita dapat dengan mudah menambahkan logika berikut ke loop for kita:
for tweet in sntwitter.TwitterSearchScraper(query).get_items():
if len(tweets) == limit:
break
else:
tweets.append((tweet.date, tweet.user.username, tweet.content))
Membuat DataFrame dengan Pandas
Sekadar pengujian, mari kita ubah batasnya menjadi 10 dan cetak arraynya untuk melihat apa yang dikembalikannya:
Agak sulit dibaca, tetapi Anda dapat dengan jelas melihat dua nama pengguna, tanggal dan tweet. Sempurna!
Sekarang mari kita berikan struktur yang lebih baik sebelum mengekspor data. Di Pandas, yang perlu kita lakukan hanyalah meneruskan array kita ke metode .DataFrame() dan membuat kolom.
df = pd.DataFrame(tweets, columns=('Date', 'User', 'Tweet'))
#print(df)
Catatan: Ini harus cocok dengan data yang kami ambil dan urutan pengambilannya.
Anda dapat mencetak bingkai data untuk memastikan Anda mendapatkan semua tweet yang ditentukan dalam variabel limit, tetapi itu akan berfungsi dengan baik.
Ekspor bingkai data Anda ke file CSV/JSON
Bagaimana mungkin Anda tidak menyukai Python ketika ekspor menjadi begitu mudah?
Mari tetapkan batasnya menjadi 1000 dan jalankan skrip kita!
Ekspor ke CSV:
df.to_csv('scraped-tweets.csv', index=False, encoding='utf-8')
Ekspor ke JSON:
df.to_json('scraped-tweets.json', orient='records', lines=True)
Catatan: Tentu saja skrip akan membutuhkan waktu lebih lama dari sebelumnya untuk mengekstrak semua data. Jadi jangan khawatir jika perlu waktu beberapa menit untuk mengembalikan tweet tersebut.
Selamat! Anda baru saja merayapi 1.000 tweet dari Januari hingga September 2022 dalam beberapa menit.
Metode ini memungkinkan Anda memfilter tweet dari rentang waktu mana pun dan menggunakan filter apa pun untuk membuat riset Anda lebih tepat.
Pengikisan mudah dari X.com (Twitter).
Snscrape adalah alat yang berguna bagi pemula dan profesional untuk mengumpulkan data X.com dengan API yang mudah digunakan.
Hal ini memungkinkan Anda mengumpulkan semua detail penting dari tweet tanpa harus membuat solusi rumit atau menghabiskan ratusan ribu dolar untuk API Twitter.
Sampai jumpa lagi, selamat menggores Twitter!
Lihat tutorial pengikisan web media sosial dan forum ini: