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内容。