Crawling Facebook

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

Facebook

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
    k
    idding, … 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 sutanto.org … :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.
Facebook 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

8 thoughts on “Crawling Facebook

    • Sudah dijelaskan di Poin 2 di section “catatan” di akhir artikel Mas ….
      Untuk keperluan tsb diatas caranya beda (“tricky” & a bit ‘wicked’) … Facebook Graph API tidak memberikan autorisasi untuk hal tsb …

        • Di timeline pribadi bisa syntaxnya id=”me’ di graph connection, tapi di timeline orang lain/Groups mau ndak mau harus page scrap, karena Graph API FB ndak mengijinkan … tapi ada cara yang lebih “tidak manual” ketimbang Beautiful Soup untuk melakukan page scrap … cuma lain waktu saja saya tuliskan dalam artikelnya …

          • Artikel saya berikutnya tentang crawling Insya Allah akan menjadi suatu teknik crawling yang “ultimate” karena bisa digunakan untuk crawl Facebook, twitter, Linkedin, Google Scholar , dll …. Tapi butuh waktu lama untuk menulisnya karena cukup kompleks … Sehingga saya simpan dulu untuk suatu saat kopi darat saja atau kalau saya nulis buku :) …. Yang di web yang dasar-dasar saja, bacaan sambil ngopi dan makan pisang goreng … :D …

  1. Pingback: Longer Access Token - Facebook Graph API | Taufik Sutanto

Leave a Reply