研究・・・ではない仕事でちょっと試したくなったので、テクニシャンの方に相談してちょっと調べたら、pythonはweb叩くのもライブラリ全部そろってるんですね・・・
素晴らしい。
urllib, urllib2というライブラリで解決するのか・・・
20.5. urllib — URL による任意のリソースへのアクセス — Python 2.7ja1 documentation
20.6. urllib2 — URL を開くための拡張可能なライブラリ — Python 2.7ja1 documentation
やりたいこと
某機械翻訳のサイトに日本語文字列を送りつけて、その翻訳結果を自動的にゲットする
必要だったこと
- 必要っぽいデータフォーマットを、ブラウザの開発ツール-->ヘッダ-->パラメータで確認してdictionary型として設定する
- プロキシを設定する
- urllib, urllib2のコマンドをそのまま叩く
- 結果がまるっと帰ってくる
- やはりブラウザの開発ツール-->インスペクタで必要っぽいところを見つけて、直接抽出する*1
- ・・・が、いけるときはHTML parserを使えば良い
こうすれば良い
import urllib
import urllib2
#
# Proxy setting
#
proxy = {'http':"http://your.proxy.address:your_port_number/"}
proxy_handler = urllib2.ProxyHandler(proxy)
opener = urllib2.build_opener(proxy_handler)
urllib2.install_opener(opener)
#
# URL and the data to send
#
url = "http://www.some.nice.application/hogehoge"
data = {"attribute1" : "inu", "attribute2" : "nuko", "attribute3:"kiji"}
#
# Send request
#
POST_data = urllib.urlencode(data) # encodes the dictionary into POST format data. possibly
req = urllib2.Request(url, POST_data) #
responses = urllib2.urlopen(req)
#
# Retrieve the whole content
#
the_page = responses.read()
responces.close()
#
# Do your fancy computations with the content!!
#
これで趣味(じゃないけど)のプログラミングでもやりたかったことに一歩近づきますね・・・!
*1:おうおうにしてhttpが壊れてたりするらしい(経験者