python请求-can';t登录

python请求-can';t登录,python,python-requests,Python,Python Requests,我正试图搜集一些数据,但首先我需要登录。我正在尝试使用,以下是我目前的代码: login_url = "https://www.wehelpen.nl/login/" users_url = "https://www.wehelpen.nl/ik-zoek-hulp/hulpprofielen/" profile_url = "https://www.wehelpen.nl/profiel/01136/hulpvragen/" uname = "****" pword = "****" d

我正试图搜集一些数据,但首先我需要登录。我正在尝试使用,以下是我目前的代码:

login_url = "https://www.wehelpen.nl/login/"
users_url = "https://www.wehelpen.nl/ik-zoek-hulp/hulpprofielen/"
profile_url = "https://www.wehelpen.nl/profiel/01136/hulpvragen/"

uname = "****"
pword = "****"


def main():
    s = login(uname, pword, login_url)
    page = s.get(users_url)
    print makeUTF8(page.text) # grab html and grep for logged in text to make sure!


def login(uname, pword, url):
    s = requests.session()
    s.get(url, auth=(uname, pword))
    csrftoken = s.cookies['csrftoken']
    login_data = dict(username=uname, password=pword,
                  csrfmiddlewaretoken=csrftoken, next='/')
    s.post(url, data=login_data, headers=dict(Referer=url))
    return s


def makeUTF8(text):
    return text.encode('utf-8')
基本上,我需要使用
POST
请求登录
login\u url
(使用
csrf
令牌,因为我会收到一个错误),然后使用从
login()
传回的
session
对象,我想通过向用户页面发出
get
请求来检查我是否登录。当我得到return-
page.text
时,我可以运行
grep
命令来检查某个
href
命令,该命令告诉我是否登录

因此,到目前为止,我无法登录并保留一个工作会话对象。有人能帮我吗?到目前为止,这是我一生中最乏味的python体验


编辑。我搜索了,搜索了,搜索了,所以没有任何结果…

有很多选择,但我成功地使用了
cookielib
,而不是试图“手动”处理cookies

import urllib2
import cookielib
cookiejar = cookielib.CookieJar()
cookiejar.clear()
urlOpener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookiejar))
# ...etc...

关于如何设置此设置,一些可能相关的答案如下:

您需要为字典键提供正确的名称。请求库使用表单的html名称来查找正确的表单。在您的情况下,这些名称是标识和密码

login_data = {'identification'=uname,'password'=pswrd...}

你能给我们看一下POST请求的输出吗?如果有人喜欢,这是完整的源代码-我在想
响应。text
。她吹了-正如你所看到的,“
  • ”(aanmelden=login)在那里,这意味着它返回了一个未标记的页面…没有运气…无法通过cookielib的csrf内容。