Python: Get Method untuk Web Scraping



Untuk mengakses server dari python, kita bisa menggunakan get method dari library requests. Langsung saja ke contoh penggunaan.

Untuk melihat isi response, gunakan properties response.content

Bila kita melihat isi response sendiri, akan mengembalikan nilai tertentu, pada contoh adalah <Response>[200]>, yang berarti OK atau Success (bila ingin lebih detail mengenai response return value, bisa ke https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html)

Pada contoh dibawah, content dari response saya truncate karena isinya cukup panjang. Pada intinya isi dari content adalah html dari alamat web yang kita get.

Response code dapat dilihat dari property response.status_code, dimana akan mengembalikan integer value (dalam hal ini 200)

Bila membutuhkan data headers, dapat diakses melalui method response.headers, pada contoh dibawah kita loop isi dari headers. Bila ingin mengetahui lebih detail mengenai headers dari response silakan ke https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html


>>> import requests
>>> response = requests.get('http://www.google.com')
>>> print(response)
<Response [200]>
>>> print(response.content)
b'<!doctype html><html itemscope="" itemtype="http://schema.org/WebPage" lang="i
d"><head><meta content="text/html; charset=UTF-8" http-equiv="Content-Type"><met
a content="/images/branding/googleg/1x/googleg_standard_color_128dp.png" itempro
p="image"><title>Google</title><script nonce="lzDaF6GEzwLkZfzNlTvF6g==">(functio....
>>> response.status_code
200
>>> for key,value in response.headers.items():
...     print(key,': ', value)
...
Date :  Sun, 22 Jul 2018 07:45:01 GMT
Expires :  -1
Cache-Control :  private, max-age=0
Content-Type :  text/html; charset=ISO-8859-1
P3P :  CP="This is not a P3P policy! See g.co/p3phelp for more info."
Content-Encoding :  gzip
Server :  gws
X-XSS-Protection :  1; mode=block
X-Frame-Options :  SAMEORIGIN
Set-Cookie :  1P_JAR=2018-07-22-07; expires=Tue, 21-Aug-2018 07:45:01 GMT; path=
/; domain=.google.com, NID=135=UBRc6qF5myUSMgYBD8ncfgeIsXtrk6slNZkdmwfbEhMKzxKr8
LMloOailJne5VYtJKoRZ1UlSAICJCBLRz_MjrNVohqs1tec80dpmt5vKYBYvfoSX3qN0PCABC0_J_3I;
 expires=Mon, 21-Jan-2019 07:45:01 GMT; path=/; domain=.google.com; HttpOnly
Content-Length :  5006
Connection :  keep-alive

Note

  • Setelah response.content terisi, kita dapat melakukan parsing dengan bantuan library beautifulsoup.
  • Perlu diperhatikan, web scraping dengan metode get tidak dapat mengakses halaman web yang menggunakan ajax. Untuk mengatasi masalah ini digunakan selenium.

Fake User-Agent

Program web scraping, dari sudut pandang server, request yang dilakukan akan terlihat bukan dari browser (bukan manusia yang melakukan browsing). Beberapa server akan menolak memberikan response.

Untuk mengatasi masalah ini, dapat gunakan library fake_useragent yang dapat diinstal ke python dengan pip install fake-useragent.

Berikut contoh penggunaan fake_useragent. Pada contoh dibawah disertakan contoh penggunaan timeout, hal ini dapat bermanfaat bila saat melakukan request, terdapat kendala dan error. Program akan terus menunggu response dari server bila tidak diberi timeout.

import requests
from fake_useragent import UserAgent

#Fake UserAgent
ua = UserAgent()

header = {'user-agent':ua.chrome}

page = requests.get('https://www.google.com',headers=header)
print(page.content)

#Timeout
page = requests.get('https://www.google.com',timeout=3)
Python: Get Method untuk Web Scraping Python: Get Method untuk Web Scraping Reviewed by noname needed on May 26, 2018 Rating: 5

No comments:

Powered by Blogger.