如何使用Python的请求模块“登录”到网站?我试图发布一个使用Python中的请求模块登录到网站的请求,但它并不真正有效。我对此并不熟悉.所以我不知道是否应该制作用户名和密码cookie,或者我找到的某种类型的HTTP授权(?)。from pyquery import PyQueryimport requests
url = 'http://www.locationary.com/home/index2.jsp'所以现在,我想我应该用“帖子”和“饼干”.ck = {'inUserName': 'USERNAME/EMAIL', 'inUserPass': 'PASSWORD'}r = requests.post(url, cookies=ck)content = r.text
q = PyQuery(content)title = q("title").text()print title我有种感觉我把饼干做错了.我不知道。如果没有正确登录,主页的标题应该是“Locationary.com”,如果是的话,应该是“Home Page”。如果您能向我解释一些关于请求和cookie的事情,并帮助我解决这个问题,我将非常感激。d:谢谢。.还没成功好的.这就是主页HTML在登录之前说的:</td><td><img src="http://www.locationary.com/img/LocationaryImgs/icons/txt_email.gif"> </td><td><input class="Data_Entry_Field_Login" type="text" name="inUserName" id="inUserName" size="25"></td><td><img src="http://www.locationary.com/img/LocationaryImgs/icons/txt_password.gif"> </td><td><input class="Data_Entry_Field_Login" type="password" name="inUserPass" id="inUserPass"></td>所以我认为我做得对,但输出仍然是“Locationary.com”。第二版编辑:我希望能够在很长一段时间内保持登录,每当我请求在该域下的一个页面,我希望内容显示,就像我已登录。
3 回答
慕尼黑5688855
TA贡献1848条经验 获得超2个赞
requests.Session()
例
import requests# Fill in your details here to be posted to the login form.payload = { 'inUserName': 'username', 'inUserPass': 'password'}# Use 'with' to ensure the session context is closed after use.with requests.Session() as s: p = s.post('LOGIN_URL', data=payload) # print the html returned or something more intelligent to see if it's a successful login page. print p.text # An authorised request. r = s.get('A protected web page url') print r.text # etc...
添加回答
举报
0/150
提交
取消