Bagaimana cara menarik data dari google sheets ke situs web?

Pengikisan web Google Spreadsheet bisa menjadi teknik yang efektif. Meskipun sebagian besar cara pengikisan web mengharuskan Anda menulis kode, pengikisan web dengan Google Spreadsheet tidak memerlukan pengkodean atau add-on. Yang perlu Anda lakukan adalah menggunakan fungsi bawaan Google Sheets. Dengan demikian, ini berfungsi sebagai pengikis web dasar

Panduan ini akan menunjukkan cara mengikis data situs web dengan Google Sheets dengan contoh praktis.  

Mengimpor XML dan HTML

IMPORTXML adalah fungsi yang mengimpor data dari berbagai tipe data terstruktur. Anda dapat menggunakannya untuk mengikis data tidak hanya dari dokumen XML tetapi juga dari dokumen HTML. Tipe data terstruktur lainnya yang didukung oleh rumus IMPORTXML adalah Comma Separated Values ​​(CSV), Tab Separated Values ​​(TSV), Really Simple Syndication (RSS), dan feed Atom XML

Bagaimana IMPORTXML bekerja

Fungsi IMPORTXML memerlukan dua parameter—URL halaman yang akan diperiksa dan kueri XPath

Jika Anda ingin melihat dokumentasi resmi, klik di sini. Namun, artikel ini akan menjelaskan IMPORTXML dan beberapa fungsi terkait lainnya secara mendetail. Mari kita lihat beberapa contoh untuk membantu kita memahami fungsi IMPORTXML sedikit lebih baik

Untuk mengekstrak elemen judul dari https. //kutipan. mengikis. com/ halaman web, rumusnya adalah sebagai berikut

=IMPORTXML("https://quotes.toscrape.com/","//title")

Seperti yang terlihat di sini, parameter pertama adalah URL situs web, dan parameter kedua adalah kueri XPath. Perhatikan juga bahwa Anda perlu mengapit kedua parameter dalam tanda kutip kecuali jika ini adalah referensi ke sel lain

Anda dapat membuat kueri XPath langsung dari browser. Buka halaman web di browser pilihan Anda, klik kanan elemen yang ingin Anda ekstrak, dan pilih Inspeksi. Anda akan melihat alat pengembang terbuka dengan elemen HTML yang disorot. Klik kanan HTML elemen yang disorot, lalu pilih Salin dan pilih Salin XPath. Tindakan ini menyalin XPath dan menyimpan elemen tersebut ke clipboard Anda

Menyalin XPath elemen

Mari kita lihat satu contoh lagi. Jika Anda ingin mengekstrak kutipan pertama dari halaman web, rumusnya adalah sebagai berikut

=IMPORTXML("https://quotes.toscrape.com/","(//*[@class='text']/text())[1]")
_

Jika kueri XPath ini tampak seperti sesuatu yang tidak Anda sukai, sebaiknya baca bagian XPath di blog kami untuk mempelajari lebih lanjut tentang menulis kueri XPath.  

Atau, Anda dapat memasukkan URL dalam sel. Misalnya, jika Anda memasukkan URL di sel A1 dan XPath di sel A2, rumus Anda akan merujuk ke sel tersebut sebagai berikut

Pengenalan XPath cepat

IMPORTXML hanya berfungsi dengan XPath. Bagian ini memberi Anda ikhtisar singkat tentang XPath, yang cukup untuk mulai menggunakan rumus IMPORTXML.  

Jika Anda memiliki HTML di mana tag body berisi h1 secara langsung, Anda dapat menggunakan XPath berikut untuk menemukan elemen h1 ini

Garis miring di awal ekspresi XPath mewakili dokumen. Kita dapat membaca XPath di atas sebagai berikut

  • Mulailah dengan akar dokumen

  • Temukan tag html di dokumen

  • Temukan tag tubuh di tag html

  • Temukan tag h1

Jika Anda ingin mencocokkan semua tag h1, Anda dapat membuat Xpath ini lebih pendek sebagai berikut

Dua garis miring ke depan berarti mencocokkan semua keturunan. Ekspresi XPath ini akan cocok dengan semua elemen h1 yang ditemukan di manapun dalam dokumen. Selanjutnya, untuk mengekstrak teks yang terdapat pada elemen h1, Anda dapat menggunakan fungsi text()

Dimungkinkan juga untuk mengekstraksi nilai atribut apa pun. Misalnya, jika Anda ingin mengekstrak nilai atribut kelas dari tag h1, XPath akan menjadi sebagai berikut

Seperti yang Anda lihat, untuk bekerja dengan atribut, Anda harus mengawali karakter @

Mari kita lihat pemfilteran. Misalnya, bagaimana jika Anda hanya ingin mendapatkan elemen h1 dengan menerapkan kelas bernama pdp_orange?

Kita belajar dari ungkapan ini bahwa kita perlu menggunakan tanda kurung siku.  

Ikuti langkah-langkah di bawah ini untuk mengekstrak data dari situs web ke Google Sheets tanpa menggunakan add-on

1. Pertama, mari temukan XPath untuk memilih elemen. Muat situs di Chrome, Klik kanan elemen, dan pilih Periksa.  

Anda akan melihat jendela alat pengembang terbuka dengan panel Elemen. Seperti yang mungkin Anda ketahui, Alat Pengembang sangat penting untuk membuat pengikis web apa pun. Selanjutnya, jika Anda ingin memilih satu elemen saja, klik kanan elemen HTML, pilih Salin, dan klik Salin XPath

Dalam contoh ini, kami akan bekerja dengan https. // buku. mengikis. com/, bertujuan untuk mendapatkan semua judul buku. Persyaratan ini berarti kita perlu menulis XPath khusus yang terlihat seperti ini

Tekan Ctrl+F atau Command+F saat tab Elemen di bilah alat pengembang terbuka dan rekatkan XPath ini. Anda akan melihat pratinjau dari 20 item yang dipilih

Melihat markup HTML, Anda akan melihat bahwa nama buku tidak lengkap untuk banyak buku di dalam teks elemen. Itu sebabnya kami mengekstraksi nilai atribut judul yang berisi judul buku lengkap.  

2. Arahkan ke Google Sheets dan buat sheet baru. Langkah ini mengharuskan Anda untuk masuk ke akun Google Anda jika Anda belum melakukannya. Bergantung pada berapa banyak lembar yang telah Anda buat di masa lalu, Anda akan melihat ubin lembar Baru di bagian atas atau tombol Lembar Baru mengambang di sudut kanan bawah

Tip. Lembar terbuka. new untuk langsung membuat sheet baru

3. Masukkan URL halaman web dan XPath dalam dua sel. Memasukkan nilai ini ke dalam sel memungkinkan kita membuat formula yang mudah dipelihara

Memasukkan URL dan XPath

4. Terakhir, kita bisa mulai mengekstrak data website dengan Google Sheets. Di sel baru, misalnya A2, masukkan rumus berikut

Rumus ini secara efektif memanggil fungsi di bawah ini

=IMPORTXML("https://books.toscrape.com/","//h3/a/@title")

Tekan ENTER untuk menjalankan fungsi ini. Butuh beberapa saat dan mendapatkan semua dua puluh judul buku

Anda akan melihat bahwa satu rumus mengekstrak semua dua puluh judul buku secara efisien. Untuk mengekstrak harga buku, langkah pertama adalah membuat XPath untuk harga. XPath ini akan menjadi sebagai berikut

Masukkan XPath ini ke dalam sel, katakanlah, B3. Setelah itu, masukkan rumus berikut di sel B4

Anda akan melihat bahwa sekarang Anda telah mengambil harga buku

Selain IMPORTXML, beberapa fungsi lain dapat digunakan untuk mengorek web langsung dari dokumen Google Sheets. Sekali lagi, tidak perlu add-on, karena ini tersedia secara native

Fungsi-fungsi tersebut adalah sebagai berikut

  • IMPORTHTML

  • IMPORTFEED

  • IMPORTDATA

Anda dapat menggunakan fungsi IMPORTHTML untuk mengekstrak data dari tabel dan daftar. Fungsi IMPORTDATA dapat mengikis data saat URL situs target Anda berisi data dalam format CSV atau TSV. Fungsi IMPORTFEED dapat mengimpor umpan RSS atau Atom. Kami akan merinci fungsi-fungsi ini segera

Impor tabel dari situs web ke Google Sheets

Jika halaman target Anda berisi data dalam tabel, fungsi IMPORTHTML sangat cocok untuk Anda. Fungsi ini mengharapkan tiga parameter

  • URL - Ini adalah URL halaman yang ingin Anda kikis. URL ini harus lengkap, termasuk http. // bagian

  • Entah "tabel" atau "daftar" - formula IMPORTHTML juga bisa mendapatkan data dari daftar. Jika Anda ingin mengekstrak tabel, setel nilai ini ke "tabel"

  • INDEX dari tabel atau daftar yang ingin Anda kikis.  

Perhatikan hal berikut tentang rumus INDEX

a. INDEX dimulai dari 1

b. INDEX untuk tabel dan daftar terpisah. Oleh karena itu, angka 1 bisa berarti tabel pertama dan daftar pertama sekaligus. Apa yang Anda dapatkan tergantung pada parameter kedua

Sebagai contoh, mari kita lihat https. //en. wikipedia. org/wiki/List_of_film_berpenghasilan tertinggi. Halaman ini berisi daftar dalam sebuah tabel.  

  1. Jadi, mulailah dengan membuat lembar baru, dan masukkan URL ini ke dalam sel. Misalnya, kami telah memasukkan URL di sel B1

  2. Selanjutnya, masukkan rumus berikut di sel A3

=IMPORTHTML(B1,"table",1)

Rumus ini mendapatkan tabel pertama dari halaman. Hasilnya, Anda akan melihat seluruh tabel diambil dari halaman web ke dalam spreadsheet Google

Dimungkinkan juga untuk mengekstrak hanya satu kolom. Untuk ini, Anda dapat menggunakan fungsi pengikisan web Google Spreadsheet lainnya—INDEX. Fungsi INDEX dapat mengekstrak baris atau kolom apa pun dari tabel. Ini membutuhkan satu parameter wajib dan dua parameter opsional

  • Referensi tabel

  • Baris - Opsional

  • Kolom - Opsional

Misalnya, jika kita hanya menginginkan judul film yang ada di kolom nomor 3, rumus kita akan menjadi seperti di bawah ini

=INDEX(IMPORTHTML("https://en.wikipedia.org/wiki/List_of_highest-grossing_films","table",1),,3)
_

Kami telah melewatkan parameter opsional "baris" karena kami ingin menyimpan semua baris. Mari beralih ke fungsi bermanfaat lainnya—IMPORTFEED

Impor data dari umpan XML ke Google Spreadsheet

RSS dan Atom adalah dua format XML standar untuk menghasilkan umpan situs web. Meskipun menggores data dari mereka menggunakan fungsi IMPORTXML dimungkinkan, itu masih memerlukan penulisan kueri XPath. Dengan demikian, fungsi khusus lebih cocok. Ada beberapa add-on pihak ketiga, tetapi kami tidak membutuhkannya.  

Di sinilah fungsi IMPORTFEED masuk. Hanya membutuhkan satu baris argumen, yaitu URL umpan. Jika Anda mengirimkan URL feed, fungsi ini akan mengambil data dan menyajikannya kepada Anda di Google Sheets. Mari kita ambil contoh umpan Teknologi New York Times untuk melihat fungsi ini beraksi.  

1. Buat lembar baru dan masukkan URL umpan di sel B1

https://rss.nytimes.com/services/xml/rss/nyt/Technology.xml

2. Sekarang, di sel A2, masukkan rumus berikut

Mengimpor data dari umpan situs web

3. Tekan Enter, dan Anda akan melihat dua puluh item feed diimpor ke dokumen Google Sheets Anda

Menyesuaikan data yang diimpor oleh IMPORTFEED

Fungsi IMPORTFEED memiliki parameter opsional berikut

  • Kueri - Anda dapat menggunakan ini untuk menentukan informasi mana yang ingin Anda impor

  • Header - Seperti yang Anda lihat dari gambar di atas, tidak ada header pada data yang diimpor. Jika Anda ingin melihat tajuk kolom, setel parameter ini ke BENAR

  • num_items - Anda juga dapat mengontrol berapa banyak item yang diambil. Jika Anda ingin hanya lima item yang diimpor, setel parameter ini ke 5

Mari perbarui pemanggilan fungsi sebagai berikut

Data yang diimpor dengan header

Perhatikan bahwa kami telah meninggalkan ruang kosong untuk kueri. Panggilan fungsi ini membawa semua kolom. Namun, sekarang Anda hanya akan melihat lima item yang diambil bersama dengan header kolom

Jika Anda menginginkan informasi spesifik dari umpan, ada daftar kemungkinan item yang dapat Anda kirim ke parameter kedua, yang sejauh ini belum kami gunakan. Jika Anda hanya menginginkan informasi tentang umpan, masukkan rumus berikut

Rumus ini mengembalikan satu baris dengan informasi umpan. Dalam contoh khusus ini, hasilnya adalah sebagai berikut

NYT > Teknologi https. // www. nytimes. com/section/technology

Anda dapat mempersempit informasi ini lebih lanjut dengan menentukan informasi mana yang Anda inginkan dari informasi umpan. Misalnya, jika Anda hanya memerlukan judul, ubah rumusnya sebagai berikut

=IMPORTFEED(B1,"feed title")
_

Opsi lainnya adalah deskripsi umpan, pembuat umpan, dan URL umpan. Anda akan melihat kesalahan jika ada informasi yang tidak ditemukan di feed

Pesan error yang menunjukkan bahwa informasi tidak ditemukan di feed

Jika Anda ingin melihat kolom tertentu, Anda dapat menggunakan kueri sebagai "item". Misalnya, jika Anda hanya ingin mendapatkan judul, masukkan rumus berikut

=IMPORTFEED(B1,"items title")

Perhatikan bahwa Anda tidak dapat menentukan lebih dari satu kolom sedemikian rupa. Jika Anda ingin mendapatkan dua kolom, Anda perlu membuat panggilan fungsi terpisah

Mengimpor Data dari CSV ke Google Sheets

Jika Anda memiliki URL situs web yang berisi file CSV, Anda dapat menggunakan fungsi IMPORTDATA untuk mendapatkan datanya. Misalnya, buat lembar baru dan masukkan URL berikut di sel B1

https://www2.census.gov/programs-surveys/decennial/2020/data/apportionment/apportionment.csv
_

Di sel A2, masukkan rumus berikut

Mengekstrak data dari file CSV

Apakah data tetap segar?

Jika Anda membiarkan lembar Google Anda tetap terbuka, fungsi ini memeriksa data yang diperbarui setiap jam. Data juga akan disegarkan jika Anda menghapus dan menambahkan sel yang sama. Perhatikan bahwa data tidak akan di-refresh jika Anda me-refresh sheet atau jika Anda menyalin-tempel sel dengan fungsi ini

Keuntungan dan kerugian dari fungsi impor

Ada beberapa keuntungan utama menggunakan fungsi impor di Google Sheets

  • Keuntungan paling signifikan dari semua fungsi ini adalah Anda tidak perlu belajar membuat kode. Selain itu, Anda tidak memerlukan add-on apa pun untuk membuat pengikis web Google Sheet

  • Data yang diekstraksi tetap segar secara otomatis.  

  • Anda dapat menggunakan impor yang agak dinamis, karena rumus ini dapat digunakan sebagai rumus Google Sheets biasa, yang berarti ini dapat mereferensikan sel lain.  

Kekurangannya juga banyak.  

  • Metode ini tidak dapat diskalakan. Jika Anda ingin mengimpor jutaan catatan, Google Sheets bukanlah yang Anda butuhkan

  • Tidak ada opsi untuk menyesuaikan tajuk. Header yang dikirim adalah header Google standar, termasuk agen pengguna, yang berarti banyak situs web akan memblokirnya

  • Selain itu, tidak ada opsi untuk mengirim permintaan POST. Bahkan tugas pengikisan web yang sedikit rumit tidak akan berhasil

  • Terakhir, Anda tidak memiliki opsi untuk menggunakan proxy. Untuk tingkat lanjut apa pun, Anda harus mengandalkan pemrograman atau solusi profesional seperti Akuisisi Data Web Berskala Besar

Kesalahan Umum

Berikut adalah beberapa kesalahan umum yang mungkin Anda hadapi saat membuat spreadsheet Google untuk web scraping

Kesalahan. Hasil array tidak diperluas

Kesalahan yang paling umum adalah kesalahan #REF. Jika Anda mengarahkan mouse ke kesalahan, Anda akan melihat pesan yang mirip dengan berikut ini

Hasil array tidak diperluas karena akan menimpa data di A36

Kesalahan ini berarti Anda perlu memberi ruang dengan menambahkan lebih banyak sel untuk hasilnya

Kesalahan. Hasil terlalu besar

Jika Anda melihat kesalahan ini, artinya hasilnya terlalu besar untuk ditangani oleh Google Sheets. Kesalahan ini terjadi saat menggunakan fungsi IMPORTXML. Solusinya adalah memperbarui kueri XPath sehingga jumlah data yang dikembalikan lebih kecil

Kesalahan terkait dengan fungsi volatil

Ketika Anda melihat kesalahan berikut

Kesalahan. Fungsi ini tidak diperbolehkan mereferensikan sel dengan NOW(), RAND(), atau RANDBETWEEN()

Artinya, Anda mencoba mereferensikan salah satu fungsi volatil, seperti NOW, RAND, atau RANDBETWEEN, di salah satu parameter. Referensi ini mungkin tidak langsung atau langsung

Fungsi impor tidak dapat menggunakan sebagian besar fungsi volatil. Solusinya adalah menyalin dan menempelkan nilai, lalu mereferensikan nilai tersebut

Kesimpulan

Google Sheets adalah cara yang bagus untuk memulai pengikisan web tanpa menulis kode apa pun. Dengan cara ini, Anda mengumpulkan data dalam spreadsheet yang merupakan keuntungan lain. Namun, cakupannya terbatas, dan Anda perlu menggunakan atau membuat pengikis web untuk pengikisan web tingkat lanjut. Untuk kemudahan penggunaan, Anda juga dapat menemukan panduan ini di GitHub

Jika Anda ingin mempelajari lebih lanjut tentang web scraping menggunakan bahasa pemrograman yang berbeda, lihat postingan blog kami, seperti Web Scraping dengan JavaScript, Web Scraping dengan Java, Web Scraping dengan C#, Tutorial Web Scraping Python, dan banyak lagi

Tentang Penulis

Vytenis Kaubre

Copywriter Muda

Vytenis Kaubre adalah Copywriter Junior di Oxylabs. Karena hasratnya terletak pada penulisan kreatif dan keingintahuan pada teknologi apa pun terus tumbuh, dia bergabung dengan pasukan copywriter. Setelah bekerja, Anda mungkin menemukan Vytenis menonton acara TV, bertukar pikiran tentang ide untuk permainan di atas meja, atau menerima saran Raymond Chandler, "Jika ragu, suruh seorang pria masuk melalui pintu dengan pistol di tangannya" terlalu serius (saat menulis cerita pendek)

Semua informasi di Oxylabs Blog disediakan "sebagaimana adanya" dan hanya untuk tujuan informasi. Kami tidak mewakili dan melepaskan semua tanggung jawab sehubungan dengan penggunaan Anda atas informasi apa pun yang terdapat di Blog Oxylabs atau situs web pihak ketiga mana pun yang mungkin ditautkan di dalamnya. Sebelum terlibat dalam aktivitas scraping dalam bentuk apa pun, Anda harus berkonsultasi dengan penasihat hukum Anda dan membaca persyaratan layanan situs web tertentu dengan saksama atau menerima lisensi scraping

Bagaimana cara mendapatkan data dari lembar Google ke situs web?

Jika Anda menyematkan spreadsheet, Anda dapat menampilkan atau menyembunyikan bagian spreadsheet setelah dipublikasikan ke web. .
Buka file di Google Spreadsheet
Di bagian atas, klik Berbagi File. .
Di jendela yang muncul, klik Sematkan
Klik Terbitkan
Salin kode di kotak teks dan tempelkan ke situs atau blog Anda

Bisakah saya menggunakan Google Sheets sebagai database untuk situs web?

Basis data Google Spreadsheet Anda dapat digunakan sebagai sumber data yang memberdayakan aplikasi web tanpa kode Anda . Salah satu cara untuk melakukannya adalah melalui AppSheet milik Google. AppSheet adalah platform tanpa kode yang memungkinkan pengguna membuat aplikasi seluler dan web sederhana langsung dari data mereka sendiri.

Bagaimana cara mengekstrak data dari Google Sheets?

Cara menggunakan alat Ekstrak .
Jalankan Power Tools dari menu Google Sheets. Ekstensi > Perkakas Listrik > Mulai
Pergi ke grup Teks
Temukan dan klik ikon Ekstrak

Bagaimana cara mendapatkan data dari Google Sheets ke tabel HTML?

Langkah-langkah membuat aplikasi web untuk menarik dan menampilkan data Google Spreadsheet .
Langkah 01. Siapkan Lembar Google Anda. Pertama, buat tabel sederhana di Google Sheet Anda. .
Langkah 02. Buat proyek Apps Script baru / Buat salinan. Kami menggunakan Google Apps Script untuk menarik data dari Google Sheets ke tabel HTML. .
Langkah 03. Terapkan sebagai Aplikasi Web