Blog Untuk Semua

Everything for Everyone

Fetching webpage menggunakan urllib pada python

Tinggalkan komentar

Fetching web pages biasanya digunakan untuk fetching data. Pada pemrogaraman python kita bisa menggunakan modul urllib atau urllib2 untuk melakukan fetching data dari web. Menurut dokumentasinya, modul urllib adalah modul yang menyediakan high-level interface untuk fetching data pada World Wide Web (WWW).

Note : untuk tutorial kali ini anda diwajibkan untuk sudah menginstal apache2 pada mesin anda.

Oke, sekarang jika anda ingin melakukan fetching data dari web, maka anda harus memanggil url tersebut. Buka python intepreter anda, lalu import modul urllib.

>>> import urllib
>>> 
>>> 
>>> http_res = urllib.urlopen("http://localhost")
>>>

Hal yang paling penting saat anda melakukan fetching data adalah mengecek respon dari web yang URL-nya kita akses tersebut. Bisa dilihat kode diatas menunjukan bahwa variabel http_res menampung hasil atau respon dari url http://localhost

>>> http_res.code
200
>>>

Luar biasa, url yang barusan kita akses ternyata nilai responnya 200, yang artinya url tersebut available. Oke sekarang bagaimana respon dari URL tersebut jika not available atau tak tersedia. Kita kembali ke python intepreter. Dan kita akses URL secara acak.

>>> http_res = urllib.urlopen("http://localhost/demo.txt")
>>> 
>>> 
>>> http_res.code
404
>>>

Bisa dilihat respon yang diberikan web tersebut 404, artinya request yang kita inginkan tidak tersedia pada web tersebut. Dan sekarang mari kita lihat attribut apa saja yang ada pada variable http_res dengan menggunakan built-in function pada python yaitu dir().

>>> dir(http_res)
['__doc__', '__init__', '__iter__', '__module__', '__repr__', 'close', 'code', 'fileno', 'fp', 'getcode', 'geturl', 'headers', 'info', 'next', 'read', 'readline', 'readlines', 'url']

Yah ada banyak sekali attributnya, dan kita sudah mencoba salah satu atrribut diatas. Mari sedikit menjajal beberapa attribut

>>> http_res.read()
'<html><body><h1>It works!</h1>\n<p>TThis is the default web page for this server.</p>\n<p>The web server software is running but no content has been added, yet.</p>\n</body></html>\n'
>>>
>>>
>>> http_res.geturl()
'http://localhost'
>>>
>>>
>>> http_res.url
'http://localhost'
>>>
>>>
>>>
>>> http_res.headers.items()
[('content-length', '178'), ('accept-ranges', 'bytes'), ('vary', 'Accept-Encoding'), ('server', 'Apache/2.2.14 (Ubuntu)'), ('last-modified', 'Thu, 13 Jun 2013 08:00:43 GMT'), ('connection', 'close'), ('etag', '"141b7c-b2-4df0486f48bde"'), ('date', 'Thu, 11 Jul 2013 07:48:57 GMT'), ('content-type', 'text/html')]
>>>

Terakhir, saya akan membuat program simple yang bertujuan untuk mengecek sebuah URL, apakah URL tersebut broken atau tidak. Berikut kodenya:

#!/usr/bin/env python

import urllib
import sys

print len(sys.argv)

if len(sys.argv) > 2 or len(sys.argv) == 1:
    print "Usage : python simplefetch.py [URL]"
    sys.exit(1)

url = sys.argv[1]
respon = urllib.urlopen(url)

if respon.code == 200:
    print "\nHalaman " + respon.url  + " tersedia"
else:
    print "\nHalaman" + respon.url + " tidak tersedia"

Referensi :

  1. python documentation
  2. vivek videos

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s