Web Scraping Dengan Python

Dalam melakukan analisis data kita pasti membutuhkan sumber data terlebih dahulu, salah satunya dari internet. Banyak data di internet yang bisa kita manfaatkan dan mengumpulkannya satu-persatu, tetapi bagaimana jika datanya banyak? Untuk ini, Anda membutuhkan automation yang bisa membantu proses pengumpulan data yang lebih cepat dan mudah.

Web Scraping

Apa itu web scraping? web scraping adalah proses ekstrasi data dari sebuah website kedalam format yang kita inginkan seperti csv atau json.

Kenapa perlu melakukan web scraping?

Pengumpulan data yang banyak akan membutuhkan waktu jika dikerjakan secara manual, apalagi website akan terus terupdate setiap waktu. Sehingga kita juga akan melakukan hal yang berulang-ulang untuk mendapatkan data yang terupdate juga. Salah satu alasan melakukan web scraping yaitu efisiensi waktu, karena proses Automation Web Scraping bisa mempercepat pengumpulan data.

Simple Web Scrapping Dengan Python

Disini saya akan coba mencontohkan web scraping untuk mendapatkan url pada hasil Google Search.

Library yang dibutuhkan yaitu BeautifulSoup dan requests, kalian bisa menginstallnya dengan perintah berikut.

pip install beautifulsoup4
pip install requests

Sekarang kita coba melakukan request ke web yang akan kita scrap menggunakan library requests, disini saya mengambil contoh https://google.com

import requests

cari = input("Search: ")
r = requests.get("https://www.google.com/search?q="+cari)
print(r.text)

Karena disini kita akan mencari url sesuai keyword dari user, maka saya memberikan inputan agar user bisa memasukkan keyword sesuai keinginan, lalu hasil dari pencarian tersebut akan ditampilkan, tampilan saat script dijalankan kurang lebih seperti ini.

get requests

Hasil yang ditampilkan masih berupa full elemen html belum sesuai yang kita inginkan, yaitu hanya url. Langkah selanjutnya kita perlu melakukan inspect element pada web yang akan kita scrap, agar mengetahui struktur web tersebut.

inspect element

Karena url yang kita cari berada pada tag HTML <a>, maka kita harus mendapatkan semua elemen tag <a> terlebih dahulu menggunakan library beautifulsoup4 dengan fungsi findAll()

import requests
from bs4 import BeautifulSoup

cari = input("Search: ")
r = requests.get("https://www.google.com/search?q="+cari)
html_soup = BeautifulSoup(r.text, "html.parser")

search_url = html_soup.findAll('a')
print(search_url)
find tag a

Semua tag HTML <a> sudah didapatkan, tetapi hasilnya masih belum sesuai keinginan kita yaitu url. Maka langkah selanjutnya kita perlu melakukan pencarian url pada tag HTML <a> dengan bantuan regex. Source code lengkapnya akan tampak seperti berikut

import requests
from bs4 import BeautifulSoup
import re

cari = input("Search: ")
r = requests.get("https://www.google.com/search?q="+cari)
html_soup = BeautifulSoup(r.text, "html.parser")

search_url = html_soup.findAll('a')
for link in search_url:
    url = link.get('href')
    try:
        url = re.search('url\?q=(.+?)\&sa', url).group(1)
        print(url)
    except:
        continue

Yap, hasil akhirnya akan tampak seperti berikut ini.

scraping url from google search

Terimakasih, semoga bermanfaat!

Default image
fariqfgi
ꦧꦸꦏꦤ꧀​ꦱꦶꦪꦥ​ꦱꦶꦪꦥ꧉​

Leave a Reply