gpt4 book ai didi

python - 如何使用 Python 的请求模块将 "log in"发送到网站?

转载 作者:IT老高 更新时间:2023-10-28 21:34:06 26 4
gpt4 key购买 nike

我正在尝试使用 Python 中的 Requests 模块发布登录网站的请求,但它并没有真正起作用。我是新手......所以我不知道是否应该制作我的用户名和密码 cookie 或我发现的某种类型的 HTTP 授权 (??)。

from pyquery import PyQuery
import requests

url = 'http://www.locationary.com/home/index2.jsp'

所以现在,我想我应该使用“post”和 cookie....

ck = {'inUserName': 'USERNAME/EMAIL', 'inUserPass': 'PASSWORD'}

r = requests.post(url, cookies=ck)

content = r.text

q = PyQuery(content)

title = q("title").text()

print title

我有一种感觉,我在做 cookies 这件事上做错了……我不知道。

如果没有正确登录,主页的标题应该是“Locationary.com”,如果是,它应该是“主页”。

如果您能向我解释一些关于请求和 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”

第二次编辑:

我希望能够长时间保持登录状态,并且每当我请求该域下的页面时,我希望内容显示为就像我已登录一样。

最佳答案

我知道你已经找到了另一种解决方案,但是对于像我这样发现这个问题的人来说,寻找相同的东西,可以通过以下请求来实现:

首先,像 Marcus 所做的那样,检查登录表单的来源以获取三项信息 - 表单发布到的 url,以及用户名和密码字段的名称属性。在他的示例中,它们是 inUserName 和 inUserPass。

一旦你得到它,你就可以使用 requests.Session() 实例向登录 url 发出一个 post 请求,并将你的登录详细信息作为有效负载。从 session 实例发出请求与正常使用请求基本相同,只是增加了持久性,允许您存储和使用 cookie 等。

假设您的登录尝试成功,您可以简单地使用 session 实例向站点发出进一步的请求。识别您的 cookie 将用于授权请求。

示例

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...

关于python - 如何使用 Python 的请求模块将 "log in"发送到网站?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11892729/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com