2013-07-31 64 views

Odpowiedz

0

Chciałbym użyć urllib2 i urllib, aby wysłać wpis.

zrobić coś takiego:

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 

należy uporządkować je trochę tak.

Aby uzyskać nazwy formularzy, należy spojrzeć na kod źródłowy witryny i znaleźć nazwy formularzy, które chcesz wprowadzić i przesłać.

Hope this helps

Powodzenia :)

+1

jaźń nie jest zdefiniowana – TSR

+0

@TSR Ups! Po prostu pozbądź się siebie! Musiałem zabrać kod z klasy, którą napisałem, i zapomniałem oderwać się! – Serial

12

First pip install requests

Trzeba zakładać jakieś konkretne dane formularza do określonego adresu URL, można użyć requests.The dict form_data params są korespondent opcje, jeśli nie potrzebujesz niektórych opcji, po prostu usuń je z formularza_danych.

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

Oto mój skrypt, który działa:

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)