Парсинг (Извлечение данных с веб-сайта) с использованием Golang
Хорошо, возможно, это моя первая статья, которую я пишу, хе-хе :') Впервые я пишу на Medium, так что прошу прощения, давайте сразу перейдем к делу.
На этот раз я расскажу о парсинге данных с помощью Go или Golang. Возможно, некоторые люди считают, что парсинг данных является незаконным, если у вас нет разрешения на их извлечение. "Возможно, в Индонезии еще нет закона об этом, ха-ха-ха". Так что это не создано для использования самих данных, а для изучения языка Golang. Возможно, есть те, кто не очень знаком с Golang, хорошо, немного объясню. Golang - это язык программирования, инициированный Google. Хорошо, этого достаточно, можно прочитать объяснение о Golang на Википедии или сразу на golang.org.
Хорошо, продолжаем, бро.
Что такое парсинг? Парсинг - это "ГРУБЫЙ" способ украсть данные с веб-сайта другого человека. "Но, братан, это же грех красть чужую собственность без разрешения владельца, потом грех и попадешь в ад, братан, не делай этого".
Хорошо, статья закончена, не нужно обсуждать, потому что это грех, ха-ха-ха-ха 🎵
Хорошо, действительно, парсинг - это извлечение данных с веб-сайта другого человека, и "БОЛЬШИНСТВО" не запрашивает разрешение у владельца этого веб-сайта. Да, действительно, большинство статей в этой статье не имеют разрешения от владельца веб-сайта, ха-ха-ха 😆, хорошо, следующий, сначала отказ от ответственности: "эта статья предназначена для обучения, поэтому извлечение данных с веб-сайта не допускается, если оно не используется в односторонней выгоде".
Эта статья не рассматривает
- установку Golang "предполагается, что он уже установлен"
- выбор веб-сайта для парсинга "зачем, черт возьми, ха-ха-ха"
- Не объясняет все синтаксисы Golang "общие"
Во-первых, я использую библиотеку другого человека, потому что использование уже существующего более разумно, чем создание с нуля, ха-ха-ха "на самом деле, лень делать с нуля". Хорошо, давайте сначала возьмем репозиторий PuerkitoBio на
go get github.com/PuerkitoBio/goquery
если вам нужно объяснение для этой библиотеки, вы можете посетить его репозиторий, документация там полная, ха-ха
если уже успех, перейдите к следующему шагу, если нет, закройте ноутбук, найдите место, где можно поесть, ха-ха-ха, я голоден 💪
сначала создадим файл с именем main.go "конечно, как можно писать код, если нет файла, хи-хи-хи"
затем создадим структуру, зачем мы так стараемся создавать структуру, ну так, чтобы было круто, ха-ха 😆, без структуры потом будет использоваться для репликации данных, которые мы получим, создадим всего две структуры, вот примеры:
затем выберите адрес или веб-сайт, с которого вы хотите "СПАРСИТЬ" данные, ха-ха, на этот раз я использую bbc.com, но для списка новостей URL немного длинный, ха-ха, и вот код для доступа к веб-сайту с помощью Golang
для кода http.Get используется для подключения к веб-сайту, с которого мы получим данные, эта функция возвращает 2 значения, Response и error, а затем это условие проверяет, удалось ли нам подключиться к веб-сайту или нет, или может быть другая ошибка, например, отсутствие подключения к Интернету или что-то еще
продолжаем кодинг
код выше используется для получения всех HTML-файлов на веб-сайте, с которого мы получаем данные, использование функции "goquery" не является частью кода Golang, а частью репозитория PuerkitoBio, если вам интересно, что там есть в его репозитории, пожалуйста,
посмотрите здесь github.com/PuerkitoBio/goquery
затем найдите данные, которые вы хотите, я приведу пример для адреса выше, я получу список новостей, изображение новости, ха
Bagian Teliti yang saya tidak suka hehe
pada contoh kali ini yang akan saya ambil untuk data example adalah title dan content yang ada di list berita tersebut,langkahnya adalah pertama untuk cari class pada title tersebut untuk mencari classnya adalah shortkey “Ctrl+Shift+i” tekan secara bersamaan, kemudian akan tampil source HTML yang ada di website tersebut seperti contoh gambar dibawah ini
cari class yang akan diambil datanya, berikut contoh pencarian class, class yang akan dicari harus mencakup semua berita yang akan kita ambil, jadi logicnya adalah sesudah kita ambil semua HTML yang ada , kita cari class yang mencakup semua berita-berita yang akan kita ambil, jika sudah mengambil class yang berisikan data-datanya kemudian cari spesifik data yang akan kita ambil, berikut adalah contoh untuk pencarian classnya
jika sudah menemukan pencarian class yang mengandung semua konten yang akan kita ambil, maka implementasikan ke code golang
dalam contoh diatas adalah kita sudah menggunakan class eagle, dimana pada class eagle mengandung semua konten yang akan kita ambil, next cari class yang mengandung title dan content , yang akan kita ambil
next jika sudah mendapatkan class yang mengandung title dan content, masukkan kedalam code golang seperti berikut
// code golang
dalam code golang diatas merupakan pengambilan title dan content kemudian dimasukkan kedalam array di struct, yang langkah berikutnya akan diubah menjadi json, atau bisa langsung dimasukkan ke dalam database yang dibutuhkan akan tetapi dalam kali ini saya akan mencontohkan diubah menjadi json
sekian dulu artikel dari saya, article ini tidak mengajarkan untuk mengolah data secara sepihak, article ini untuk bahan learning dan improving untuk newbi seperti saya hehehe ampun suhu, jika ada salah kata, itu memang sengaja hehe tapi saya minta maaf dan jangan dimasukkan kedalam hati
untuk sourcodenya bisa dilihat disini
Если у вас есть какие-либо вопросы ||~
Свяжитесь со мной по следующим контактам:
- Email: cakazies.id@gmail.com
- Instagram: @cakazies