Bagaimana Cara Mengikis Data Saluran Telegram Menggunakan Python?

Komentar: 0

Proses scraping saluran Telegram memerlukan pengumpulan informasi secara otomatis, baik itu dari grup publik atau komunitas pribadi. Melalui Python dan perpustakaan Telethon, pesan, metadata, file media, anggota grup, dan banyak lagi dapat diambil.

Web scraping Telegram dapat dilakukan untuk berbagai alasan, termasuk mempelajari riset pemasaran yang mendetail, menganalisis konten, atau melacak utas diskusi di sebuah komunitas.

Berikutnya adalah panduan terperinci tentang cara mengikis data Telegram menggunakan Python.

Langkah 1: Menginstalasi Pustaka yang Diperlukan

Jadi, apa yang dimaksud dengan telegram scraping langkah pertama? Kita harus menyiapkan lingkungan Python-nya termasuk pustaka yang relevan. Alat scraping Telegram API utama adalah Telethon - sebuah perpustakaan asinkron yang memungkinkan interaksi dengan platform.

Gunakan perintah untuk menginstalnya:


pip install telethon

Langkah 2: Mengkonfigurasi Perpustakaan Telethon

Sebelum terlibat dengan web scraping API Telegram, ada ID API pribadi dan Hash yang harus diperoleh.

  1. Akses akun Telegram Anda dan masuk menggunakan nomor telepon akun pengembang yang ingin Anda gunakan.

    1.png

  2. Selanjutnya, klik pada bagian alat pengembangan API.

    2.png

  3. Pada jendela baru yang muncul, Anda diminta untuk memasukkan informasi mengenai aplikasi Anda. Hanya dua bidang yang wajib diisi. Anda dapat mengubahnya jika Anda mau, tetapi bidang lainnya bersifat opsional.

    3.png

  4. Di bagian akhir, klik "Buat aplikasi". Ingat, hash API Anda bersifat rahasia, dan platform tidak akan mengizinkan Anda untuk membatalkannya. Jangan publikasikan data ini di mana pun.

    4.png

Setelah Anda memiliki API dan Hash, Anda dapat membuat sesi untuk masuk ke akun sekarang.

Penting! Ketika melakukan web scraping skrip Telegram, jangan pernah memberi judul file Anda telethon.py, karena Python akan mencoba mengimpor TelegramClient dan akan gagal karena konflik nama.

Untuk masuk ke akun Anda, pertama-tama tulis:


from telethon import TelegramClient

api_id = 12345678
api_hash = '0123456789abcdef0123456789abcdef'

with TelegramClient('anon', api_id, api_hash) as client:
   client.loop.run_until_complete(client.send_message('me', 'hello'))

Pada baris pertama, kita mengimpor nama kelas untuk membuat sebuah instance dari kelas tersebut. Kemudian kita mendefinisikan variabel untuk menyimpan API dan hash.

Kemudian, kita membuat instance baru TelegramClient dan menamainya client. Sekarang Anda dapat menggunakan variabel client untuk apa saja, misalnya, mengirim pesan kepada diri sendiri.

Langkah 3: Memilih Saluran atau Grup Telegram

Sebelum melakukan web scraping pada saluran Telegram, kita perlu menentukan sumber pengumpulan data. Di dalam platform ini, ada dua jenis komunitas utama: saluran dan grup.

Jika Anda membutuhkan akses ke saluran atau grup pribadi, Anda harus menjadi anggotanya. Beberapa komunitas memiliki batasan tertentu dan atau memerlukan undangan, dan kerumitan ini harus dipertimbangkan sebelum memulai penggalian saluran Telegram.

Pertimbangkan contoh cara memilih saluran atau grup untuk bergabung dan melakukan scraping anggota saluran telegram dan data lainnya:


from telethon import TelegramClient

api_id = 12345678
api_hash = '0123456789abcdef0123456789abcdef'
client = TelegramClient('anon', api_id, api_hash)


async def main():
   me = await client.get_me()
   username = me.username
   print(username)
   print(me.phone)
   
   async for dialog in client.iter_dialogs():
       print(dialog.name, 'has ID - ', dialog.id)


with client:
   client.loop.run_until_complete(main())

Ini mengilustrasikan bagaimana cara masuk dan mendapatkan akses tertentu yang berkaitan dengan akun Anda, termasuk semua percakapan yang berisi ID yang relevan yang sangat penting dalam hal berinteraksi dengan saluran atau grup yang diinginkan.

Langkah 4: Mengikis Pesan

Mengatur koneksi pada API memberi Anda kebebasan untuk mengumpulkan pesan yang relevan dengan saluran atau grup yang Anda tuju. Melalui pengikisan Telegram Python, Anda berpeluang mendapatkan banyak pesan teks, stempel waktu, media, termasuk metadata tentang peserta.

Berikut ini contoh cara melakukannya:


from telethon import TelegramClient

api_id = 12345678
api_hash = '0123456789abcdef0123456789abcdef'
client = TelegramClient('anon', api_id, api_hash)


async def main():
   id_client = 32987309847

   object = await client.get_entity(id_client)

   print(object.title)
   print(object.date)

   if object.photo:  # Periksa apakah ada foto profil
       await client.download_profile_photo(object, file="profile.jpg")

   # Mencetak semua pesan obrolan
   async for message in client.iter_messages(id_client):
       print(f'{message.id}//{message.date} // {message.text}')

       # Menyimpan semua foto obrolan
       if message.photo:
           path = await message.download_media()
           print('File saved', path)


with client:
   client.loop.run_until_complete(main())

Setelah kita memiliki ID yang diperlukan, kita dapat mengakses pesan dan metadata yang sesuai dari grup tersebut. Setelah itu, informasi seperti nama grup, tanggal pembuatan, avatar (jika tersedia), pesan dan ID yang sesuai beserta tanggal publikasi dapat diakses. Jika pesan memiliki gambar, gambar tersebut dapat diambil secara otomatis bersama dengan pesan untuk diproses lebih lanjut.

Langkah 5: Jalankan Scraper

Setelah semua parameter ditetapkan, skrip pengikis Telegram Python dapat diaktifkan. Beberapa pengujian awal disarankan; menjalankan skrip pada sekumpulan pesan yang besar kemungkinan akan menemukan banyak masalah yang harus diperbaiki sebelum melanjutkan ke pemanenan data skala penuh.

Saat berlari, pastikan untuk mengikuti panduan ini:

  • Apakah skrip mengumpulkan semua pesan dan metadata yang diperlukan?
  • Apakah nilai teks, tanggal dan waktu, nomor identifikasi pesan, dan file media ditangkap dengan benar?
  • Apakah ada masalah dengan implementasi permintaan API Telegram?

Jika ada masalah yang muncul, biasanya hal ini dapat diatasi dengan jeda di antara permintaan, atau mengonfirmasi bahwa saluran atau grup memang tersedia.

Langkah 6: Opsi Pengikisan Tambahan Saat Mengikis Web Telegram

Setelah pengumpulan data dasar diotomatisasi, maka dimungkinkan untuk memperluas rangkaian fitur scraper dan menambahkan kemampuan pengumpulan data baru.

  1. Ekstraksi detail pengguna dalam saluran atau grup seperti nama lengkap, nomor identifikasi, dan status pribadi. Hal ini berguna untuk mengevaluasi keterlibatan pengguna atau melacak pengguna penting tertentu.
  2. Memilih pesan melalui pemfilteran berdasarkan kata dan rentang tanggal tertentu. Membatasi pengumpulan data pada pesan yang mengandung kata-kata tertentu atau dikirim selama rentang waktu tertentu terkadang penting. Hal ini memastikan bahwa data yang dikumpulkan relevan dan memenuhi ketentuan yang ditetapkan.
  3. Mengumpulkan metadata tambahan. Selain dari data utama yang mencakup pesan teks dan file multimedia, metadata lain seperti jumlah total reaksi yang diterima sebuah pesan, berapa kali sebuah pesan diteruskan, dan keberadaan jajak pendapat dapat dikumpulkan.

from telethon import TelegramClient

api_id = 12345678
api_hash = '0123456789abcdef0123456789abcdef'

client = TelegramClient('session_name', api_id, api_hash)


async def main():
   channel = await client.get_entity(-4552839301)

   # Dapatkan 100 pesan terakhir dari saluran tersebut
   messages = await client.get_messages(channel, limit=100)

   # Memfilter pesan berdasarkan kata kunci
   keyword = 'Hello'
   filtered_messages = [msg for msg in messages if keyword.lower() in msg.text.lower()]

   for message in filtered_messages:
       print(f"Message: {message.text}")
       print(f"Date: {message.date}")
       print(f"Sender: {message.sender_id}")

   # Dapatkan peserta saluran
   participants = await client.get_participants(channel)
   for participant in participants:
       print(f"Participant ID: {participant.id}, Username: {participant.username}")


with client:
   client.loop.run_until_complete(main())

Langkah 7: Mengelola Batas Tarif API

Ketika bekerja dengan API Telegram, sangat penting untuk diingat bahwa jumlah panggilan yang dapat dilakukan selama durasi waktu tertentu dibatasi. Mengirimkan terlalu banyak pesan secara konsisten akan menyebabkan platform membatasi akses ke API atau menurunkan daya tanggap server.

Untuk mengurangi masalah ini, penggunaan proxy disarankan:


import random
import socks
from telethon import TelegramClient

# Daftar proxy yang tersedia
proxy_list = [
   ("res.proxy-seller.com", 10000, socks.SOCKS5, True, "user1", "pass1"),
   ("res.proxy-seller.com", 10001, socks.SOCKS5, True, "user2", "pass2"),
   ("res.proxy-seller.com", 10002, socks.SOCKS5, True, "user3", "pass3"),
]

# Pilih proxy acak
proxy = random.choice(proxy_list)

try:
   client = TelegramClient('anon', api_id, api_hash, proxy=proxy)
   print(f"Successfully connected through proxy: {proxy}")
except (OSError, ConnectionError, TimeoutError, ValueError) as e:
   print(f"Proxy error: {e}, trying without it")
   client = TelegramClient('anon', api_id, api_hash)

Kami menerapkan rantai proksi di mana server proksi baru digunakan untuk setiap koneksi berikutnya, yang secara efektif membuat koneksi. Strategi ini meminimalkan kemungkinan akses web scraping Telegram API dibatasi dan menghilangkan kemungkinan kecepatan koneksi yang terbatas, memastikan bahwa skrip akan berjalan dengan andal.

Mengapa Telegram Scraping?

Scraping Telegram dengan Python dapat dimanfaatkan di berbagai sektor karena platform ini menyimpan beragam data unik yang tidak tersedia di tempat lain.

Area aplikasi utama meliputi:

  • Riset pemasaran. Menganalisis tren, minat audiens, dan pesaing.
  • Pemantauan konten. Mengumpulkan dan menganalisis pesan dari grup dan saluran.
  • Analisis pengguna. Mempelajari perilaku peserta komunitas.
  • Otomatisasi. Mengumpulkan dan memproses pesan untuk digunakan lebih lanjut dalam chatbot dan sistem notifikasi.

Memang, dengan menggunakan scraper saluran Telegram, Anda dapat secara otomatis mendapatkan data yang diperlukan dan menyederhanakan analisis lebih lanjut.

Pengikisan Web Telegram: Kesimpulan

Kali ini, kami menangani tantangan untuk mengikis Telegram dengan Python dan mengekstrak konten dari komunitas tertentu. Menggunakan proxy telah menjadi titik fokus utama untuk menyediakan eksekusi tanpa gangguan. Pustaka Telethon dipasang, API diaktifkan, saluran atau grup yang diperlukan dipilih, dan pesan, media, dan metadata diambil.

Menggunakan web scraping Telegram dengan Python memungkinkan otomatisasi pengumpulan data untuk riset pemasaran, analisis konten, dan bahkan pemantauan aktivitas pengguna. Untuk menghindari pembatasan yang diberlakukan oleh platform, seseorang juga dapat menggabungkan rotasi akun, penggunaan proksi, VPN, atau batas waktu dinamis di antara permintaan. Selain itu, penting juga untuk mematuhi hukum serta batasan etika untuk menghindari pelanggaran kebijakan platform.

Komentar:

0 komentar