2013-07-31 12 views
6

私はこの1つのようなGoogleの-フォームに回答を提出することが可能となるのPythonスクリプトを記述しようとしている: https://docs.google.com/forms/d/152CTd4VY9pRvLfeACOf6SmmtFAp1CL750Sx72Rh6HJ8/viewformGoogleフォームによるPythonの応答?

しかし、どのように、私は実際にPOSTを送信し、どのように私は見つけることができ、どのような本POSTには実際に含まれるべきですか?

答えて

0

私はurllib2urllibを使用して投稿を送信します。

このような何か:あなたは少しそのようにそれを構築する必要があり

import urllib2, urllib 
import cookielib 

cookieJar = cookielib.LWPCookieJar() 
opener = urllib2.build_opener(
    urllib2.HTTPCookieProcessor(self.cookieJar), # Create Opener 
    urllib2.HTTPRedirectHandler(), 
    urllib2.HTTPHandler(debuglevel=0)) 

# Add Headers      
opener.addheaders = [('User-agent', "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.72 Safari/537.36")] 


forms = { 
      "formname": value, # The forms name and the selected value you want 
      "formname2": value2, 
     } 

data = urllib.urlencode(forms) # Encode data 
req = urllib2.Request('http://www.example.com',data) # Send Request 
res = opener.open(req) # Open Request 
html = res.read() # Read Response 

を。

フォーム名を取得するには、サイトのソースコードを確認し、入力して送信するフォームの名前を確認する必要があります。

これは

幸運を役に立てば幸い:)

+1

自己がおっと – TSR

+0

@TSRが定義されていません!ちょうど自己を取り除く!私は書いた授業のコードを外して、自己を離れるのを忘れてしまったに違いない! – Serial

12

まずpip install requests

あなたは、特定のURLにいくつかの特定のフォームデータをポストする必要があり、あなたがrequests.Theを使用することができますform_data辞書のparamsに対応していますオプションが必要な場合は、form_dataから削除するだけです。ここで

import requests 
url = 'https://docs.google.com/forms/d/152CTd4VY9pRvLfeACOf6SmmtFAp1CL750Sx72Rh6HJ8/formResponse' 
form_data = {'entry.2020959411':'18+ sollte absolute Pflicht sein', 
      'entry.2020959411':'Alter sollte garkeine Rolle spielen', 
      'entry.2020959411':'17+ wäre für mich vertretbar', 
      'entry.2020959411':'16+ wäre für mich vertretbar', 
      'entry.2020959411':'15+ wäre für mich vertretbar', 
      'entry.2020959411':'Ausnahmen von der Regel - Dafür?', 
      'entry.2020959411':'Ausnahmen von der Regel - Dagegen?', 
      'entry.2020959411':'__other_option__', 
      'entry.2020959411.other_option_response':'test', 
      'draftResponse':[], 
      'pageHistory':0} 
user_agent = {'Referer':'https://docs.google.com/forms/d/152CTd4VY9pRvLfeACOf6SmmtFAp1CL750Sx72Rh6HJ8/viewform','User-Agent': "Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.52 Safari/537.36"} 
r = requests.post(url, data=form_data, headers=user_agent) 
0

は働く私のスクリプトです:

import urllib 
import urllib2 

user_agent = 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)' 
header={'User-Agent' : user_agent} 
url = "http://....Your google form" 
# values from your form. You will need to include any hidden variables if you want to.. 
values= { 
'entry.asdfsdfsdasd': 'asdfasdfsd', 
'draftResponse':'[,,"-asdfasdasdf"]', 
'pageHistory':'0', 
'fbzx':'-asdfasdfsd' 
} 
data = urllib.urlencode(values) 
urllib2.Request(url, data, header) 
関連する問題