Cara Crawl Instagram Menggunakan Python dan InstaLooter

Cara Crawl Instagram Menggunakan Python dan InstaLooter

Cara Crawl Instagram Menggunakan Python dan InstaLooter

Instagram kini menjadi salah satu media sosial yang paling populer di dunia. Fitur menarik yang dihadirkan mampu menggaet orang-orang mulai dari kalangan anak-anak hingga orang tua. Instagram sendiri tidak memberikan fitur untuk mengunduh media seperti foto, video, dan Instagram story.

Oleh karena itu, banyak orang mencoba melakukan crawling Instagram untuk mendapatkan informasi seperti foto, video, dan lain-lain. Sebenarnya Instagram sendiri sudah menyediakan API untuk para developer. Tetapi, kita harus mendaftarkan aplikasi kita lalu Instagram akan memberikan OAuth dan token API. Hal itu akan cukup sulit apabila project aplikasi kita tidak cukup besar untuk dapat diterima oleh pihak Instagram.

Solusi dari semua itu adalah InstaLooter. Menurut situs resminya, instalooter.readthedocs.io, InstaLooter adalah program yang dapat digunakan untuk mengunduh gambar dan video dari segala profil dan hashtag di Instagram tanpa menggunakan API token. Selain bisa digunakan dengan command line, InstaLooter juga bisa diterapkan pada pemrograman Python.

Command Line

Hal pertama yang perlu dilakukan adalah instalasi package InstaLooter dengan command:

$ pip install instalooter

Setelah itu mari kita coba mengunduh foto atau video. Saya akan mengunduh foto terbaru dari akun elwonoccino.

$ instalooter user "elwonoccino" -n 1

Dengan command tersebut saya mencoba mengunduh foto atau video dari akun elwonoccino dengan jumlah 1. Option -n dan diikuti dengan angka menunjukkan seberapa banyak foto atau video yang ingin diunduh.

Cara Crawl Instagram Menggunakan Python dan InstaLooter

Sekarang kita coba untuk mengunduh per post.
Anda bisa gunakan kode url-nya saja,

$ instalooter post "B_E_mUQA_sv"

atau url lengkapnya.

$ instalooter post "https://www.instagram.com/p/B_E_mUQA_sv/"
Cara Crawl Instagram Menggunakan Python dan InstaLooter

Anda dapat mengunjungi website resminya, Usage — InstaLooter 2.4.4 documentation untuk mendapatkan informasi yang lebih lengkap, atau bisa juga dengan mengetikkan command:

$ instalooter -h

Pengaplikasian pada Python

Untuk dapat digunakan pada Python, kita perlu memanggil InstaLooter terlebih dahulu sebagai sebuah modul. Kali ini saya akan coba untuk memanggil modul PostLooter.

from instalooter.looters import PostLooter

Setelah itu kita coba buat code sederhana yang akan mengunduh salah satu postingan elwonoccino.

from instalooter.looters import PostLooter

post = PostLooter("B_E_mUQA_sv")
post.download("elwonoccino")

Setelah itu, ketika programnya dijalankan, foto pada postingan tersebut akan berhasil diunduh.
Parameter pertama pada post.download(), "elwonoccino", merupakan parameter yang menunjukkan destinasi atau tempat tujuan meletakkan foto atau video yang akan diunduh.

Cara Crawl Instagram Menggunakan Python dan InstaLooter

Lalu, bagaimana cara melakukan crawling pada caption atau komentar?
Pertama-tama, kita memerlukan metadata pada postingan tersebut. Metadata yang dihasilkan terdiri dari file JSON yang memuat caption, komentar, dan lain-lain. Kita akan mengambil metadata melalui command line saja.

$ instalooter post "B_E_mUQA_sv" -D

Option -D digunakan untuk mengambil metadata saja tanpa mengunduh foto atau video pada postingan terkait.

Cara Crawl Instagram Menggunakan Python dan InstaLooter

Anda bisa membuka file JSON secara online dengan JSON Viewer Online. Saya sendiri akan membuka file JSON ini melalui text editor.
Tampilan isi dari file JSON akan seperti ini.

Cara Crawl Instagram Menggunakan Python dan InstaLooter

Jika kita telusuri lebih dalam, kita akan menemukan key "edge_media_to_caption". Key tersebut dapat kita gunakan untuk meng-crawl caption. Berikut code untuk mendapatkan mentahan caption.

from instalooter.looters import PostLooter

post = PostLooter('B_E_mUQA_s')
info = post.get_post_info('B_E_mUQA_sv')
caption = info["edge_media_to_caption"]
print(caption)
Cara Crawl Instagram Menggunakan Python dan InstaLooter

Kita berhasil mendapatkan mentahannya. Sekarang saatnya untuk mengambil teksnya. Kita tambahkan beberapa key untuk mencapai teks pada caption.
from instalooter.looters import PostLooter

post = PostLooter('B_E_mUQA_s')
info = post.get_post_info('B_E_mUQA_sv')
caption = info["edge_media_to_caption"]["edges"][0]["node"]["text"]
print(caption)

Maka, ketika di-run kita akan mendapatkan output caption.

Cara Crawl Instagram Menggunakan Python dan InstaLooter

Selanjutnya, bagaimana kita dapat mengambil komentar pada postingan? Mudah saja, gunakan key "edge_media_to_parent_comment". Kali ini saya akan coba untuk mengambil semua komentar beserta balasannya. Untuk balasannya sendiri, kita dapat gunakan key "edge_threaded_comments".
Berikut ini code untuk menampilkan semua komentar beserta balasan pada postingan elwonoccino.

from instalooter.looters import PostLooter

post = PostLooter('B_E_mUQA_sv')
info = post.get_post_info('B_E_mUQA_sv')
comment = info["edge_media_to_parent_comment"]
list_comment = comment["edges"]

for comments in list_comment:
	list_comment = comments["node"]
	print("-", list_comment["owner"]["username"],": " ,list_comment["text"])
	list_reply = list_comment["edge_threaded_comments"]["edges"]
	if len(list_reply) != 0:
		for replies in list_reply:
			list_reply = replies["node"]
			print("\tBalasan: ", list_reply["owner"]["username"], ": ", list_reply["text"])

Jika programnya di-run, akan muncul seperti ini.

Cara Crawl Instagram Menggunakan Python dan InstaLooter

Atau kurang lebih seperti ini.


- lilqied :  ??
- barbosa.jdv :  and that, my son, is how you lose a game of dota
- eshidki28 :  In sea bkb is for kids :)
- sedwo :  Imagine going daedalus on mk
        Balasan:  sedwo :  @sedwo and not memehammer ??
- adriancyho :  In SEA, mmr is nothing, behavior score is everything. Behavior score low = 4 trash on team.
        Balasan:  aingtehsaha77 :  @adriancyho it doesnt matter ,i still get bunch of idiot team ,even with 10k conduct
summary :(
- fahrezid21 :  Passive bkb
- kia_shoaey :  @arya.capt4in dqiqan jnabt
        Balasan:  arya.capt4in :  @kia_shoaey ????????
- ur_shoaib :  Hahhaha
- bkurnali :  MK players: 50% Smurfs, 50% utter retards
- foryoyandoyo :  ??????????
- riplogicc :  @_muddledcreature._ zongaa
        Balasan:  _muddledcreature._ :  @riplogicc We dont buy em at heralds??
        Balasan:  riplogicc :  @_muddledcreature._ *cries in position 3,4,5*
- seppph_.68 :  Bruh they have lots of cc they might kite you
        Balasan:  seppph_.68 :  @seph_gardiola Mk: They can't kite me if they die immediately
        Balasan:  legaviotini :  I have seen too many snipers with 5 items and no bkb die in two spells to not know how tilting is seeing the daedalus when you ping them to buy bkb xd
- declannnnnnn :  Cries in 2k
- nggoraa :  Its true bois, some player just think that bkb is useless
        Balasan:  cerealprotector :  @nggoraa yeah, like there is no cc in this game.
- joshuamanasye :  u really should play with me
- affanwinurrahman :  My mid zeus be like
- darius_woodward :  It is kind of annoying when someone tells you to go a certain item like they know so much more than you despite being the same rank
- amraditt :  some archon players said if bkb has no damage lol
- helorocino :  This meme  thing is nice and all. But is it as good as Dota 2?
- bagusyudhayuswara :  Did bamnlozed have ig ? @elwonoccino
- chilledbit :  Bruh when's the next post..... Been so long
- klodjan.shpendi :  Make new videos bruda

Anda bisa melihat dokumentasi modul-modul yang tersedia pada InstaLooter di Python Module Index - InstaLooter. Dengan banyaknya data yang tersedia, Anda bisa membuat berbagai macam hal dengan library InstaLooter.

Semoga bermanfaat dan sukses selalu.
Tetap jaga kesehatan dan terapkan protokol kesehatan.

Posting Komentar

0 Komentar