1

Python で書かれた google-app-engine のアプリケーションがあります。アプリケーションからプロキシ経由で URL をフェッチしたい。appengine からリモート URL を取得する 2 つの方法を見つけました。

  1. urlfetch の使用
  2. Python 組み込みの urllib2 を使用する

urlfetch のドキュメントを調べたところ、プロキシを設定する方法が見つかりませんでした。だから私はurllib2で遊び始めました。私はこれを試しました:

class MainHandler(webapp.RequestHandler):
    def get(self):
        proxy_handler = urllib2.ProxyHandler({'http': "210.246.88.46:8080",})
        opener = urllib2.build_opener(proxy_handler)
        resp = opener.open("http://whatsmyuseragent.com/", timeout=20)
        self.response.out.write(resp.read())

しかし、appengine はプロキシを無視し、独自の IP で URL を取得しているようです。結果ページには、プロキシの ip ではなく、アプリケーションの ip が表示されます。ドキュメントでは、IP は変更できないと言われています。HTTPヘッダーのIPを手動で変更できないことを意味すると思いましたが、それでもプロキシを使用できます。

ただし、正確に知りたいのですが、appengine のプロキシ経由で URL をフェッチすることは可能かどうか、そして私の頭を壊すのをやめることは可能ですか :)。

4

1 に答える 1