Python urllib提交表单

Python urllib提交表单,python,forms,urllib,Python,Forms,Urllib,单击此表单上的“确认订单”按钮的最佳方式是什么?是否可以使用urllib执行“.click()” <form action="/rewards/redeem/checkout?productId=000800000042&amp;provider=tango" method="post"><input name="__RequestVerificationToken" type="hidden" value="PgnGm_5t1_s23cjcOwADKh6dYsXveK

单击此表单上的“确认订单”按钮的最佳方式是什么?是否可以使用urllib执行“.click()”

<form action="/rewards/redeem/checkout?productId=000800000042&amp;provider=tango" method="post"><input name="__RequestVerificationToken" type="hidden" value="PgnGm_5t1_s23cjcOwADKh6dYsXveK5KTEReYTdxC7UWYmLLTPlaYuU5jAbhC8SvoVqF_VcTlzp7zDNYwvV_eBboB4K_mT-m4gwqFDhPRH0s59SGZNnWvui-Vs1NSyLE0" />                    <input id="email-input" name="emailPreference" type="hidden" value="shop@gmail.com">
            <input name="email" type="hidden" value="">
            <input name="shouldUpdateProfile" type="hidden" value="true">
            <input name="isModernRewardsUser" type="hidden" value="true">
            <input name="firstName" type="hidden" value="">
            <input name="lastName" type="hidden" value="">
            <input name="challenge.RequestId" type="hidden" value="a008087c-ee8b-41ef-aff2-d02d14b5f258">
                <button id="redeem-checkout-review-confirm" class="btn-primary card-button-height padding-left-24 padding-right-24">
                    <span class="pull-left margin-right-15">CONFIRM ORDER</span>
                    <span class="pull-left win-icon mee-icon-ChevronRight margin-top-1"></span>
                </button>

post
如果您有表单的url,请求可以帮助您提交表单。
url = "https://account.microsoft.com/rewards/redeem/checkout?productId=000800000042"
request = urllib2.Request(url = url, headers = self.httpHeaders)
request.add_header("Referer", bingCommon.BING_URL)
with self.opener.open(request) as response:
    referer = response.geturl()
    page = helpers.getResponseBody(response)

emailAddress = re.search('input id=\"email-input\" name=\"emailPreference\" type=\"hidden\" value=\"(.+)\"',page).group(1)
token = re.search('input name=\"__RequestVerificationToken\" type=\"hidden\" value=\"(.+)\" /',page).group(1)
challenge = re.search('input name="challenge.RequestId" type="hidden" value="(.+)\"',page).group(1) 
print emailAddress, token, challenge
postFields = urllib.urlencode({
    "__RequestVerificationToken"      : token,
    "emailPreference"         : emailAddress,
    "email"        : "",
    "shouldUpdateProfile"          : "true",
    "isModernRewardsUser"          : "true",
    "firstName"          : "",
    "lastName"  : "",
    "challenge.RequestId"     : challenge
})
request = urllib2.Request(url, postFields, self.httpHeaders)
#request.add_header("Referer", bingCommon.BING_URL)
with self.opener.open(request) as response:
    referer = response.geturl()
    page = helpers.getResponseBody(response)