2011-09-14 8 views
1

http://www.harshtechtalk.com/contact-us-harsh-tech-talk에 양식을 제출하려고하는데 다음 코드를 사용했지만 성공하지 못했습니다. 도와주세요!python에서 urllib2를 사용하여 웹 양식을 제출할 수 없습니다.

#!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 - 자바 스크립트를 지원하지 않으므로 "mechanize"를 사용하고 싶지 않습니다. 동적 웹 양식을 처리하는 데 사용할 수있는 다른 모듈이 있다면 알려주십시오.

+0

"성공하지 못함"은 무엇을 의미합니까? 어떻게 지금 자바 스크립트를 실행하고 있습니까? – geoffspear

+0

내 블로그의 문의 양식입니다. 따라서 양식을 제출할 때마다 이메일이 전송됩니다. 성공하지 못하면 나는 메일을받지 못했다. 그것은 그것을 사용하여 시도 mechanize와 함께 작동합니다. 따라서 양식에는 아무런 문제가 없습니다. – theharshest

답변

0

AJAX 웹 양식 처리에는 일반적으로 selenium을 사용해야합니다. 그러면 Python이 JavaScript 엔진이 설치된 실제 웹 브라우저를 구동하게됩니다. 어떤 사람들은 또한 phantomjs에 대해 이야기하지만, 나는이 시점에서 공식 파이썬 모듈을 알지 못한다. 참고 :

Headless, scriptable Firefox/Webkit on linux?

+1

셀레늄이 나를 위해 일했습니다. 그러나 Pyhton에게는 좋은 문서를 찾기가 어렵습니다. – theharshest

관련 문제