Cara menggunakan scrapy python example

Pada artikel ini kita akan mencoba melakukan scraping dengan python menggunakan library BeautifulSoup dan Selenium. Selain kedua library tersebut masih ada beberapa library python lainnya seperti (Scrapy, MechanicalSoup, dan lain-lain) yang dapat digunakan untuk melakukan scraping. Untuk yang belum tahu apa itu scraping bisa lihat disini.

Perbedaan Antara Crawling dan Scraping

Assalamualaikum Warahmatullahi Wabarakatuh

medium.com

Kembali mengingatkan untuk scraping melakukan komunikasi melalui protokol HTTP dan memerlukan pengetahuan tentang element pada HTML.

Scrapping dengan BeautifulSoup

BeautifulSoup merupakan salah satu library python yang digunakan untuk melakukan scraping dengan mengambil data berupa HTML atau XML. BeautifulSoup secara otomatis melakukan encoding utf-8 dari hasil data yang didapatkan.

Image by opencodez

BeautifulSoup is a Python library for pulling data out of HTML and XML files. It works with your favorite parser to provide idiomatic ways of navigating, searching, and modifying the parse tree. Any HTML or XML document is written in a specific encoding like ASCII or UTF-8. But when you load that document into Beautiful Soup, you’ll discover it’s been converted to Unicode.

~ BeautifulSoup

Pada tulisan ini kita akan latihan scraping dengan BeautifulSoup menggunakan Google Colab.

Langkah awal install library BeautifulSoup

pip install beautifulsoup4

Kemudian import library

import requests
from bs4 import BeautifulSoup

Kita masukkan URL yang dituju dan gunakan fungsi html.parser untuk melakukan HTML Parsing pada website. Kemudian kita cari element HTML dengan keyword nama id atau nama class.

url = “https://www.tribunnews.com/techno"
res = requests.get(url)
html = BeautifulSoup(res.content, “html.parser”)
divs = rows.findAll(“div”, class_ = “bsh ovh “)

Selanjutnya kita buat fungsi perulangan untuk mengambil data yang diperlukan seperti jenis kategori, judul dan link. Data-data tersebut sesuai dengan nama class yang ada.

for div in divs:
kategori = div.find(“div”, class_ = “mr140”).span.get_text().replace(‘\n’, ‘’)
title = div.find(“div”, class_ = “mr140”).h3.get_text().replace(‘\t’, ‘’)
link = div.find(“div”, class_ = “mr140”).h3.a.get(“href”)

Full code bisa lihat disini :

DedeBrahma/scraping-web

github.com

Scraping dengan Selenium

Selenium merupakan tools untuk Automation Browser, singkatnya browser akan dijalankan secara otomatis melalui program yang dirancang. Biasanya digunakan untuk melakukan testing dalam aplikasi sebuah website. Agar selenium dapat berjalan secara otomatis dibutuhkan WebDriver sesuai browser yang ingin digunakan. Setiap browser memiliki driver masing-masing. Driver inilah yang akan digunakan oleh selenium untuk menjalankan browser secara otomatis.

Image by edureka

Selenium is an umbrella project for a range of tools and libraries that enable and support the automation of web browsers. It provides extensions to emulate user interaction with browsers. Supports automation of all the major browsers in the market through the use of WebDriver. WebDriver is an API and protocol that defines a language-neutral interface for controlling the behaviour of web browsers.

~ Selenium

Pada tulisan ini kita akan latihan scraping dengan Selenium menggunakan Google Colab. Jika teman-teman ingin menjalankan selenium menggunakan lokal python bisa lihat tutorialnya disini.

Web Scraping Using Selenium — Python

In this article, you’ll learn how to navigate through multiple pages of a website and scrape large amounts of data…

towardsdatascience.com

Langkah awal install selenium dan chromedriver

!pip install selenium
!apt-get update
!apt install chromium-chromedriver
!cp /usr/lib/chromium-browser/chromedriver /usr/bin

Baris code diatas kita melakukan perintah command dengan linux untuk update OS dan Library linux yang ada. Kemudian copy folder chromedriver ke dalam folder usr/bin. Untuk dapat melihat daftar Webdriver browser yang mendukung selenium bisa lihat disini:

Kemudian kita Import semua library yang dibutuhkan

from selenium import webdriver
from bs4 import BeautifulSoup

Selanjutnya load Webdriver yang sudah terinstall dan masukkan alamat URL yang dituju.

options = webdriver.ChromeOptions()
options.add_argument(‘ — headless’)
options.add_argument(‘ — no-sandbox’)
options.add_argument(‘ — disable-dev-shm-usage’)
browser = webdriver.Chrome(‘chromedriver’, options=options)
browser.get(“https://pages.lazada.co.id/wow/i/id/LandingPage/flashsale")

Untuk dapat menjalankan selenium pada browser yang sama kita membutuhkan protocol arguments.

List of Chromium Command Line Switches

There are lots of command lines which can be used with the Google Chrome browser. Some change behavior of features…

peter.sh

Kemudian kita gunakan library BeautifulSoup untuk melakukan HTML Parsing pada alamat URL.

html = browser.page_source
browser.quit()
soup = BeautifulSoup(html, “html.parser”)
divs = soup.findAll(“div”, class_ = “unit-content”)

Setelah itu kita buat fungsi perulangan untuk mengambil data yang kita perlukan.

for i, div in enumerate(divs):
title = div.find(“div”, class_ = “sale-title”).get_text().replace(‘\n’, ‘’)
price = div.find(“div”, class_ = “sale-price”).get_text().replace(‘\n’, ‘’)
discount = div.find(“span”, class_ = “discount”).get_text().replace(‘\n’, ‘’)

Kita akan ambil data berupa nama produk, harga produk dan total diskon. Data didapat sesuai dengan nama class yang ada pada website.

Full code bisa dilihat disini:

DedeBrahma/scraping-web

Example scraping web with python and Google Colab. Contribute to DedeBrahma/scraping-web development by creating an…

github.com

Untuk yang ingin menjalankan selenium di lokal bisa lihat disini :

DedeBrahma/scraping-web-selenium

Example scraping web with python and selenium this repo reference from this article…

github.com

Catatan: Setiap website memiliki element dengan nama id atau nama class yang berbeda-beda. Jadi pastikan nama id atau class sesuai dengan data yang akan kita ambil.