Python请求发布表单

时间:2017-03-04 17:23:22

标签: python forms post python-requests

我正在尝试发布一个http表单并获得响应。我理解“请求”可能是要走的路。我想发布到这个页面上的登录表单:www.dust2.dk/Login比较响应,检查我是否收到错误“Der er ikke registreret nogen bruger med den email”(“没有用户注册的那个电子邮件“)

某种方式表单未被发布或响应未被保存。我试图寻找解决方案,但无济于事。这是我的代码

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

#imports
import requests

#code
def main():

        r = requests.post('http://dust2.dk/Login', data = {'email' : 'testmail@test.dk', 'password' : 'testest'})

        if 'Der er ikke registreret nogen bruger med den email' in r.text:
                print 'You done did it mate!'
        else:
                print 'Nope! Keep trying'

正如您可能猜到的结果是:“不!继续尝试”如果我打印出响应r,我只需获取页面的来源www.dust2.dk/Login。你有什么指示我可能在这里做错了吗?

1 个答案:

答案 0 :(得分:0)

前几天我必须通过发送Python的发布请求来做类似的事情。我跟着this。您需要导入并使用urllib和urllib2。

import urllib
import urllib2

url = 'http://dust2.dk/Login'
values = {'email' : 'email@here',
          'password' : 'blahblah'}

data = urllib.urlencode(values)
req = urllib2.Request(url, data)
response = urllib2.urlopen(req)
the_page = response.read()

编辑:如果您使用的是Python 3,请实际关注this指南。 看看这是否符合您的要求。