urllibを使ってPOST、GETを投げてみよう


Yahoo検索にGETを投げる事ができたので、次は天下のgoogleさんにクエリを投げてみましょう。
  #! /bin/usr/env python
  # -*- coding:utf-8 -*-

  import urllib
  reqdata = {}
  reqdata['q'] = 'python'
  reqdata['lr'] = 'lang_ja'
  reqdata['ie'] = 'utf-8'
  reqdata['oe'] = 'utf-8'
  reqdata['aq'] = 't'
  reqdata['rls'] = 'org.mozilla:ja:official'
  reqdata['client'] = 'firefox-a'
  
  params = urllib.urlencode(reqdata)
  
  urllib.urlopen('http://www.google.co.jp/search?' + params)
  
とやって見ると、google先生からハジカレマス(なんてこった。 どうやらgoogleがurllibをハジイテいるようです。 そこで、urllib2を使ってUserAgentを書き換えてHTTPリクエストをします。。上のソースを下記のように変更。

  #! /bin/usr/env python
  # -*- coding:utf-8 -*-

  import urllib
  import urllib2 #urllib2をインポートする
  
  reqdata = {}
  reqdata['q'] = 'python'
  reqdata['lr'] = 'lang_ja'
  reqdata['ie'] = 'utf-8'
  reqdata['oe'] = 'utf-8'
  reqdata['aq'] = 't'
  reqdata['rls'] = 'org.mozilla:ja:official'
  reqdata['client'] = 'firefox-a'
  
  params = urllib.urlencode(reqdata)
  
  #クライアントを作成
  opener = urllib2.build_opener()
  
  #User AgentをMozillaに変更(User-AgentがPython-urllib/*.*となっているので、Mozillaに変更)
  opener.addheaders = [('User-Agent', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.0.1)')]
  
  #urllib.urlopen('http://www.google.co.jp/search?' + params)
  #↑を作成したopenerを使ってopenするように変更
  opener.open(url + params) #受信したHTMLを表示したい場合はopener.open(url + params).read().decode('utf-8')
  
コレでgoogle先生もOKしてくれます(ゴマカシテごめんね)。


次回、Cookieを使ってPOST,GETを投げてみよう に続きます。