CoderCastrov logo
CoderCastrov
Парсер

Парсинг (Извлечение данных с веб-сайта) с использованием Golang

Парсинг (Извлечение данных с веб-сайта) с использованием Golang
просмотров
4 мин чтение
#Парсер

Хорошо, возможно, это моя первая статья, которую я пишу, хе-хе :') Впервые я пишу на 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

Gambar 1

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

Gambar 2

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

Gambar 3

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

Если у вас есть какие-либо вопросы ||~

Свяжитесь со мной по следующим контактам: