2011-09-14 17 views
1

http://www.harshtechtalk.com/contact-us-harsh-tech-talkでフォームを送信しようとしましたが、次のコードを使用しても成功しません。助けてください!pythonでurllib2を使用してWebフォームを送信できません

#!C:/Python27/python.exe 

import urllib 
import urllib2 

def main(): 
     proxy_info={ 
         'user' : '[email protected]', 
         'pass' : 'xyz', 
         'host' : 'xxxxxxxx', 
         'port' : 80 
         } 
     proxy_support = urllib2.ProxyHandler({"http" : "http://%(user)s:%(pass)[email protected]%(host)s:%(port)d" 
% proxy_info}) 
     opener = urllib2.build_opener(proxy_support, urllib2.HTTPHandler) 
     urllib2.install_opener(opener) 
     url = 'http://www.harshtechtalk.com/contact-us-harsh-tech-talk' 
     values = { 
         'your-name':'test_name', 
         'your-email':'[email protected]', 
         'your-subject':'python_test', 
         'your-message':'test_message' 
         } 
     data = urllib.urlencode(values) 
     req = urllib2.Request(url,data) 
     response = urllib2.urlopen(req) 
     the_page = response.read() 
     print "done" 

if __name__ == '__main__': 
     main() 

PS - 私はjavascriptをサポートしていないため、「mechanize」は使いたくありません。ダイナミックなWebフォームを扱うために使用できる他のモジュールがあるかどうか教えてください。

+0

「成功しません」とはどういう意味ですか?どのように今あなたはJavaScriptを実行していますか? – geoffspear

+0

これは私のブログの連絡フォームです。したがって、フォーム提出の場合、私は電子メールを受け取ります。成功していないと、私はメールを受け取っていないということです。私はそれを使ってみましたので、mechanizeで動作します。したがって、フォームに問題はありません。 – theharshest

答えて

0

AJAX Webフォームの処理には、一般に、seleniumを使用する必要があります。そのため、PythonはJavaScriptエンジンがインストールされた実際のWebブラウザを使用します。一部の人々はまたphantomjsについて話しますが、私はこの時点で公式のPythonモジュールを認識していません。さらに:

Headless, scriptable Firefox/Webkit on linux?

+1

セレンは私のために働いた。しかし、Pyhtonにとって、良い文書を見つけるのは難しいです。 – theharshest

関連する問題