logo proxyscrape gelap

Cara Mengikis Reddit Menggunakan Python

Bagaimana caranya, Python, Mengikis, Nov-02-20225 menit baca

Daftar Isi

Orang-orang dapat dengan mudah mengumpulkan dan mengikis informasi dari berbagai sumber seperti Facebook, Reddit, dan Twitter. Anda bisa menganggap scraper sebagai alat khusus yang mengekstrak data dari halaman web secara akurat dan cepat. API pengikisan membantu pengikis menghindari larangan oleh teknik anti-pengikisan yang diterapkan oleh situs web. Namun, menggunakan API lebih mahal dibandingkan dengan alat proxy yang dikelola sendiri.

Pernahkah Anda menggunakan Reddit? Jika Anda seorang peneliti sosial dan menghabiskan banyak waktu online, kemungkinan besar Anda pernah mendengar tentang Reddit. Reddit menyebut dirinya sebagai "halaman depan Internet". Ini adalah forum diskusi online di mana orang berbagi konten dan berita atau mengomentari postingan orang lain. Jadi, ini adalah sumber data yang luar biasa untuk pemasar Internet dan peneliti sosial. 

Reddit memiliki API yang disebut Python Reddit API Wrapper, disingkat PRAW, untuk merayapi data. Di blog ini, saya akan menunjukkan kepada Anda langkah-langkah tentang cara meng-crawl Reddit menggunakan python. Tetapi sebelum itu, Anda perlu tahu mengapa Anda harus melakukan scraping Reddit.

Mengapa Anda Perlu Mengikis Reddit?

Jika kita berbicara tentang desain Reddit, maka itu dipecah menjadi beberapa komunitas yang dikenal sebagai "subreddit." Anda dapat menemukan subreddit dari topik yang Anda minati di Internet. Para peneliti sosial menjalankan analisis, membuat kesimpulan, dan mengimplementasikan rencana yang dapat ditindaklanjuti ketika mereka mengekstrak diskusi Reddit untuk topik tertentu. 

Anda dapat mengikis banyak poin data dari Reddit, seperti:

  • Tautan
  • Komentar
  • Gambar
  • Daftar subreddit
  • Pengajuan untuk setiap subreddit
  • Nama pengguna
  • Upvotes
  • Downvotes

Anda dapat mengorek informasi apa pun dari Reddit yang relevan dengan bisnis Anda karena kebutuhan berikut:

  • Untuk membangun aplikasi NLP
  • Untuk melacak sentimen pelanggan
  • Untuk tetap berada di puncak tren pasar
  • Untuk riset konsumen
  • Untuk memantau dampak kampanye pemasaran Anda

Sebagai contoh, 

  • Merek fesyen perlu mengikis semua teks komentar, judul, tautan, gambar, dan keterangan di subreddit fesyen:
    • Merancang strategi penetapan harga yang tepat
    • Mengidentifikasi tren warna
    • Menemukan titik-titik kesulitan para fashionista dengan berbagai merek
  • Para pemain jurnalisme dan berita harus mengikis postingan penulis dengan tautan blog untuk melatih algoritme pembelajaran mesin untuk meringkas teks secara otomatis.
  • Perusahaan investasi dan perdagangan harus mencari subreddit terkait "pasar saham" untuk menyusun rencana investasi dengan menafsirkan saham mana yang sedang dibahas.

Tantangan Mengikis Reddit

Scraping Reddit menggunakan pengikis web (program komputer) untuk mengekstrak data yang tersedia untuk umum dari situs web Reddit. Anda perlu menggunakan pengikis Reddit karena keterbatasan yang akan Anda hadapi saat menggunakan API Reddit resmi. Namun, jika Anda menggunakan web scraper yang tidak menggunakan API Reddit untuk mengekstrak data dari Reddit, Anda akan melanggar ketentuan penggunaan Reddit. Tetapi bukan berarti web scraping itu ilegal.

Untuk mendapatkan sesi scraping yang bebas hambatan, Anda harus menghindari sistem anti-scraping yang diterapkan oleh Reddit. Teknik anti-scraping yang paling umum digunakan oleh Reddit adalah:

  • Pelacakan IP
  • Captcha

Anda dapat memecahkan masalah pelacakan IP dengan bantuan proxy dan rotasi IP. Di sisi lain, Anda dapat memecahkan masalah Captcha dengan menggunakan pemecahan Captcha seperti 2Captcha.

Cara Mengikis Reddit Menggunakan Python

Ada lima cara untuk mengikis Reddit, dan berikut ini adalah lima cara tersebut:

  • Pengikisan Manual - Metode ini adalah metode yang paling mudah tetapi paling tidak efisien dalam hal kecepatan dan biaya. Namun, metode ini menghasilkan data dengan konsistensi yang tinggi.
  • Menggunakan API Reddit - Anda memerlukan keterampilan pengkodean dasar untuk mengikis Reddit menggunakan API Reddit. API ini menyediakan data tetapi membatasi jumlah postingan di thread Reddit hingga 1000.
  • API pihak ketiga berlapis gula - Ini adalah pendekatan yang efektif dan dapat diskalakan, tetapi tidak hemat biaya.
  • Alat Penggores Web - Alat-alat ini dapat diskalakan dan hanya memerlukan pengetahuan dasar tentang penggunaan mouse.
  • Skrip Scraping Khusus - Skrip ini sangat dapat disesuaikan dan dapat diskalakan, tetapi membutuhkan kaliber pemrograman yang tinggi.

Mari kita lihat bagaimana kita dapat mengupas Reddit menggunakan API Reddit dengan bantuan langkah-langkah berikut.

Buat Akun API Reddit

Anda perlu membuat akun Reddit sebelum melanjutkan. Untuk menggunakan PRAW, Anda harus mendaftar untuk API Reddit dengan mengikuti tautan ini.

Mengimpor Paket dan Modul

Pertama, kita akan mengimpor modul bawaan Pandas, yaitu, datetime, dan dua modul pihak ketiga, PRAW dan Pandas, seperti yang ditunjukkan di bawah ini:

impor udang
import panda sebagai pd
import datetime as dt

Mendapatkan contoh Reddit dan subreddit

Anda dapat mengakses data Reddit menggunakan Praw, yang merupakan singkatan dari Python Reddit API Wrapper. Pertama, Anda harus terhubung ke Reddit dengan memanggil fungsi praw.Reddit dan menyimpannya dalam sebuah variabel. Setelah itu, Anda harus mengoper argumen berikut ini ke fungsi tersebut.

reddit = praw.Reddit(client_id ='PERSONAL_USE_SCRIPT_14_CHARS', \
                    client_secret='SECRET_KEY_27_CHARS', \
                    user_agent='NAMA_APLIKASI ANDA', \
                    username='NAMA PENGGUNA_REDIT ANDA', \
                     kata sandi='KATA SANDI_LOGIN_LOGIN_REDIT ANDA')
Sekarang, Anda bisa mendapatkan subreddit pilihan Anda. Jadi, panggil instance .subreddit dari reddit (variabel), dan berikan nama subreddit yang ingin Anda akses. Sebagai contoh, Anda dapat menggunakan subreddit r/Nootropics.
subreddit = reddit.subreddit('Nootropics')

Mengakses Utas

Setiap subreddit memiliki lima cara berbeda di bawah ini untuk mengatur topik yang dibuat oleh Redditor:

  • .new
  • .hot
  • .kontroversial
  • .gilded
  • .top

Anda dapat mengambil topik yang paling banyak dipilih sebagai:

top_subreddit = subreddit.top()

Anda akan mendapatkan objek seperti daftar yang berisi 100 kiriman teratas di r/Nootropics. Namun, batas permintaan Reddit adalah 1000, jadi Anda dapat mengontrol ukuran sampel dengan memberikan batas ke .top sebagai:

top_subreddit = subreddit.top(limit=600)

Mengurai dan Mengunduh Data

Anda dapat mengikis data apa pun yang Anda inginkan. Namun, kami akan mengorek informasi di bawah ini tentang topik-topik tersebut:

  • id
  • judul
  • skor
  • tanggal pembuatan
  • teks tubuh

Kita akan melakukan ini dengan menyimpan data kita dalam sebuah kamus dan kemudian menggunakan perulangan for seperti yang ditunjukkan di bawah ini.

topics_dict = { "title":[], \
                "score":[], \
                "id":[], "url":[], \
                "created": [], \
                "body":[]}

Sekarang, kita dapat mengikis data dari API Reddit. Kita akan menambahkan informasi ke kamus kita dengan melakukan iterasi melalui objek top_subreddit.

untuk pengajuan di top_subreddit:
    topics_dict["id"].append(submission.id)
    topics_dict["judul"].append(kiriman.judul)
    topics_dict["skor"].append(kiriman.skor)
    topics_dict["created"].append(submission.created)
    topics_dict["body"].append(submission.selftext)

Sekarang, kita memasukkan data kita ke dalam Pandas Dataframe karena kamus Python tidak mudah dibaca.

topik_data = pd.DataFrame(topik_dict)

Ekspor CSV

Sangat mudah untuk membuat file data dalam berbagai format di Pandas, jadi kami menggunakan baris kode berikut untuk mengekspor data kami ke file CSV.

topik_data.to_csv('NAMA_NAMA.csv', index =False)

Proksi Reddit Terbaik Tahun 2021

Anda tahu bahwa Reddit bukanlah situs web yang ketat dalam hal pembatasan penggunaan proxy. Tetapi Anda bisa tertangkap dan dihukum jika Anda mengotomatiskan tindakan Anda di Reddit tanpa menggunakan proksi. 

Jadi, mari kita lihat beberapa proksi terbaik untuk Reddit yang terbagi dalam dua kategori:

Proksi Tempat Tinggal - Ini adalah alamat IP yang diberikan oleh Penyedia Layanan Internet (ISP) ke perangkat di lokasi fisik tertentu. Proksi ini mengungkapkan lokasi sebenarnya dari perangkat yang digunakan pengguna untuk masuk ke situs web.
Proksi pusat data - Ini adalah berbagai alamat IP yang tidak berasal dari Penyedia Layanan Internet mana pun. Kami memperolehnya dari penyedia layanan cloud.

Berikut ini adalah beberapa proksi residensial dan pusat data teratas untuk Reddit.

Smartproxy

Smartproxy merupakan salah satu penyedia proksi residensial premium teratas karena efektif untuk otomatisasi Reddit. Layanan ini memiliki kumpulan IP yang luas dan menyediakan akses ke semua IP setelah Anda berlangganan layanannya. 

Stormproxy

Harga dan lebar pita tak terbatas dari Stormproxies menjadikannya pilihan yang bagus. Mereka terjangkau dan murah untuk digunakan. Mereka memiliki proksi untuk berbagai kasus penggunaan dan menyediakan proksi residensial terbaik untuk otomatisasi Reddit.

ProxyScrape

ProxyScrape adalah salah satu penyedia layanan proxy populer yang berfokus pada penawaran proxy untuk scraping. Layanan ini juga menawarkan proxy pusat data khusus bersama dengan proxy pusat data bersama. Layanan ini memiliki lebih dari 40 ribu proxy pusat data yang bisa Anda gunakan untuk mengikis data dari situs web di Internet.

ProxyScrape menyediakan tiga jenis layanan kepada para penggunanya, yaitu, 

Proksi tinggi

Highproxies bekerja dengan Reddit dan memiliki kategori proksi sebagai berikut:
  • Proksi bersama
  • Proksi pribadi
  • Proksi situs yang diklasifikasikan
  • Proksi tiket
  • Proksi media

Proksi instan

Anda juga bisa menggunakan Instantproxy untuk otomatisasi Reddit karena mereka sangat aman, andal, cepat, dan memiliki waktu aktif sekitar 99,9 persen. Mereka adalah yang termurah dari semua proksi pusat data.

Mengapa Menggunakan Proksi Reddit?

Anda membutuhkan proxy ketika Anda bekerja dengan beberapa alat otomatis di Reddit. Itu karena Reddit adalah situs web yang sangat sensitif yang dengan mudah mendeteksi tindakan otomatis dan memblokir IP Anda untuk mengakses platform. Jadi, jika Anda mengotomatiskan beberapa tugas seperti memberikan suara, posting, bergabung/bergabung dengan grup, dan mengelola lebih dari satu akun, Anda pasti perlu menggunakan proksi untuk menghindari hasil yang buruk.

Solusi Alternatif untuk Mengikis Reddit

Anda dapat menggunakan scraping manual jika persyaratan scraping Reddit Anda kecil. Tetapi jika kebutuhannya besar, Anda harus memanfaatkan metodologi scraping otomatis seperti alat scraping web dan skrip khusus. Pengikis web terbukti hemat biaya dan sumber daya ketika persyaratan pengikisan harian Anda dalam beberapa juta posting.

Jadi, mari kita lihat beberapa pengikis Reddit terbaik sebagai solusi terbaik untuk mengikis data Reddit dalam jumlah besar.

Scrapestrom

Scrapestorm adalah salah satu alat scraping terbaik yang tersedia di pasaran karena bekerja dengan sangat baik dalam hal scraping Reddit. Alat ini memanfaatkan kecerdasan buatan untuk mengidentifikasi titik data utama pada halaman web secara otomatis.

Pengikis Reddit dari Apify

Scraper Reddit dari Apify memudahkan Anda mengekstrak data tanpa menggunakan API Reddit. Artinya, Anda tidak memerlukan token API pengembang dan otorisasi dari Reddit untuk mengunduh data untuk penggunaan komersial. Anda juga dapat mengoptimalkan pengikisan Anda dengan menggunakan layanan proxy terintegrasi dari platform Apify. 

Kesimpulan

Kami telah membahas lima cara untuk mengikis data Reddit, dan yang paling mudah adalah menggunakan Reddit API karena hanya membutuhkan keterampilan pengkodean dasar. PRAW adalah pembungkus Python untuk Reddit API yang memungkinkan Anda untuk menggunakan Reddit API dengan antarmuka Python yang bersih. Tetapi ketika Anda memiliki persyaratan scraping Reddit yang besar, Anda dapat mengekstrak data yang tersedia untuk umum dari situs web Reddit dengan bantuan scraper Reddit. Untuk mengotomatiskan tindakan Anda di situs web Reddit, Anda perlu menggunakan pusat data atau proksi perumahan.