Crawling Facebook


Di artikel sebelumnya saya membahasa cara crawling data twitter, baik melalui API maupun melalui page scrapping. Kali ini giliran Facebook  ^_^

Preliminaries:

  1. Niat yang tulus dan ikhlas … :v  … xi xi xi … Maaf Gan … kata Pak Ustad semua harus di dahului dengan niat yang baik … ^_^
  2. Install Git,… yess trust me on this … just do it … :D … : https://git-scm.com/downloads kidding, … alasannya karena kita ingin sdk Facebook terkini :)
  3. Install Facebook-sdk modul. Kalau sebelumnya sudah pernah install modul “facebook” atau “facebook-sdk” lama, sebaiknya di uninstall dulu: “pip uninstall facebook” atau “pip uninstall facebook-sdk”. Untuk install facebook-sdk terkini dari command prompt/Linux terminal (Mac users podo karo linux keto’e):
  4. Login ke facebook, lalu like page tau-data.id … :v …. Segera klik like dan aamiin kalau mau dapet pahala … :v #bercandaGan #JanganDiBataYa … :D … login aja juga cukup kok … walau kalau klik like sebenarnya bisa nyenengin orang …. #ehm #kodeKeras … :D
  5. Buka Facebook Graph API explorer : https://developers.facebook.com/tools/explorer/
  6. Klik Get Token dan pilih akses yang diinginkan (untuk akses yang non public, Lihat Gambar).
  7. Kalau facebook minta ijin akses data, klik yess … Kalau Agan ndak setuju dan klik No, maka silahkan tutup artikel ini … lupakan saja niat crawling facebook … Niat Agan ternyata belum cukup kuat … :D
  8. Catat “Access Token” yang di generate. Kita akan membutuhkannya di Code Python-nya nanti.
API_Explorer
Facebook API_Explorer

Catatan The Code:

  1. Baca komen di script baik-baik … besok ujian keluar!!!
  2. While loop atau while true di code adalah mekanisme paging, sama seperti fungsi “scan” di NoSQL seperti ElasticSearch. Intinya request data terus sampai tidak ada lagi data yang bisa di request.
  3. Parameter “connection_name” adalah Graph “Edges” yang domainnya (nilainya) tergantung reference yang digunakan (misal: ‘me’,’page’,’groups’, dll) …. Silahkan baca lebih lanjut di Docs Facebook API-nya [link ada dibawah].
  4. Hasil codes saya simpan di file teks dalam format Json. Bisa juga di simpan langsung ke NoSQL/Database atau format file teks lainnya (CSV, TSV, XML, dll).
  5. Silahkan pelajari semua “keys” di dictionary “posts”. Misal print(posts.keys()) atau print(posts[‘data’].keys()) untuk mendapatkan/menyimpan informasi lain seperti komentar, jumlah like komentar, dsb sesuai dengan kebutuhan.

The Code

Catatan:

  1. Access Token dari Facebook API_Explorer time based (sementara). Kalau mau AT yang lebih lama sebenarnya bisa, cuma lebih riweuh  (coba google deh :p ) …. kalau AT-nya expired generate lagi saja dengan cara yang sama seperti diatas.
  2. Script diatas hanya untuk crawl Facebook Pages (dan profile kita sendiri). Untuk Crawl Forum dan profile user lain agak tricky … pembahasannya cukup advance … lain waktu atau saat kopi darat aja deh.
  3. Untuk mempelajari Graph API selengkapnya silahkan baca disini: https://developers.facebook.com/docs/graph-api/reference
  4. Fungsi getLikes sangat tidak efisien karena untuk sekedar menghitung likes menggunakan paging. kalau mau cepat pakai FQL (Sayangnya FQL mau di remove oleh Facebook: https://developers.facebook.com/docs/reference/fql) Cara cepat lain menggunakan “likes” “summary” di URL request (lain kesempatan).
  5. Walau dari script di atas seharusnya sudah cukup jelas, tapi kalau mau belajar lebih detail tentang Facebook Paging disini: https://developers.facebook.com/docs/graph-api/using-graph-api/#paging
Good Luck, Please let me know lewat komen di bawah kalau ada errors atau pertanyaan. Tapi kalau nanya jangan susah-susah ya … lagi pusing nih … :D
Cheers,
< / TES >® ~ BNE 30/07/2016,04:14:09

Tidak ada komentar:

Posting Komentar

Relevant & Respectful Comments Only.