Integrasi dengan Instagram

Melalui kelas ini, kamu diajak untuk:

  • Memahami fungsi setiap modul pendukung untuk melakukan scraping data Instagram.
  • Menyusun kode Python untuk mengimpor modul-modul pendukung tersebut.

Perlukah Kita Login?

Kita sebenarnya bisa melakukan scraping data Instagram tanpa melalui login terlebih dahulu. Namun, eksekusi webdriver berlebihan dapat membuat Instagram mendeteksi kita sebagai bot sehingga kemungkinan akan error semakin besar. Masalah ini dapat diatasi dengan melakukan login akun sebelum mengakses unggahan yang datanya ingin diambil..

Ketuk untuk melihat keunggulan Selenium.

Mengaktifkan Webdriver

Sebelum memulai eksekusi, pastikan webdriver diaktifkan. Sebagaimana telah dibahas di materi sebelumnya, kita akan menggunakan chromedriver.

Definisikan driver untuk mengaktifkan webdriver dengan kode ini.


driver = webdriver.Chrome('D:\chromedriver.exe')

Membuka Halaman Depan Instagram

Setelah webdriver telah aktif, kita perlu membuka halaman depan Instagram dengan menulis fungsi driver.get(url).


driver.get("http://www.instagram.com")

Mengisi Username dan Password Akun Instagram

Ketika kita membuka halaman depan Instagram, browser nantinya akan menampilkan kolom username dan password untuk keperluan login. Maka kita perlu melakukan dua langkah:

Menarget kedua kolom menggunakan fungsi-fungsi dalam WebDriverWait, EC, dan By Mengisi kedua kolom menggunakan Keys

Untuk langkah pertama, masukkan kode ini.


username = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input[name='username']")))
password = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input[name='password']")))

Langkah kedua adalah mengisi username dan password akun.


username.clear()
username.send_keys("usernamse_saya")
password.clear()
password.send_keys("password_saya")

# Menarget tombol login dan mengkliknya

button = WebDriverWait(driver, 2).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "button[type='submit']"))).click

Mengatasi Notifikasi “Not Now”

Seusai kita berhasil login, Instagram akan memberikan dua notifikasi yang perlu kita atasi. Biasanya, kita akan mengklik Not Now secara manual. Kali ini, kita harus menulis kode agar webdriver bisa mengklik Not Now sebanyak dua kali.

Untuk langkah pertama, masukkan kode ini.


# Mengatasi dua notifikasi "Not Now"

not_now = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, '//button[contains(text(), "Not Now")]'))).click()
not_now2 = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, '//button[contains(text(), "Not Now")]'))).click()

Dengan mengatasi dua notifikasi tersebut, kita telah berhasil masuk ke Instagram. Kode ini dianggap berjalan jika

Selayang Pandang

  • Siapkan akun sebagai perantara Selenium melakukan scrapping.
  • Selenium akan membuka akun Instagram.
  • Window browser yang tengah melakukan scrapping jangan sampai ditutup.

Kuis

Bagaimana cara memasukkan akun perantara di Selenium?

Selamat, Anda telah menyelesaikan pelajaran ini
Klik untuk menyelesaikan