gpt4 book ai didi

通过 POST 使用请求库进行 python 身份验证

转载 作者:太空宇宙 更新时间:2023-11-03 16:28:20 25 4
gpt4 key购买 nike

我读了几个类似的主题..我尝试遵循其他示例,但我仍然陷入困境..我有Python编程的基本技能,对http协议(protocol)知之甚少,我的两个目标是:- 通过请求库成功对网站进行身份验证- 登录后在 session 处于事件状态时从网站获取数据

这是代码:

import requests

targetws = 'https://secure.advfn.com/login/secure'

s = requests.session()

payload_data = {'login_username': 'xxx', 'login_password': 'yyy'}

response = s.post(targetws, data=payload_data)


url='https://it.advfn.com/mercati/BIT/generali-G/ordini'

result = s.get(url)

print result.content

但是我总是登录不成功..也许我错过了发布数据中的一些值(value),例如提交操作或其他?任何帮助将不胜感激,最诚挚的问候!

这里是页面的 html 代码:

form action="https://secure.advfn.com/login/secure" id="login_form" name="login_form" method="POST" target="">

<input type="hidden" value="aHR0cDovL2l0LmFkdmZuLmNvbQ==" name="redirect_url" id="redirect_url">
<input type="hidden" value="it" name="site" id="site">

<div class="fields"><label for="login_username">Username</label>
<input type="text" tabindex="1" class="text ui-widget-content" value =""
id="login_username" name="login_username" maxlength="64">
</div>

<div class="fields"><label for="login_password">Password</label>
<input tabindex="2" type="password" class="text ui-widget-content" value="" id="login_password" name="login_password" maxlength="16">
</div>
<div class="fields">
<strong><a href="/common/account/password/request">Se ti sei dimenticato la tua password</a></strong> &nbsp;
<input class="button" tabindex="3" type="submit" value="Accedi" id="login_submit">
</div>
</form

最佳答案

如果你看看发布的内容:

enter image description here

您发现您需要 redirect_urlsite,您可以使用 bs4 从源中的输入中解析它们。 :

import requests
from bs4 import BeautifulSoup

data = {"redirect_url": "",
"site": "uk",
"login_username": "foo",
"login_password": "bar"}

with requests.Session() as s:
log = "https://secure.advfn.com/login/secure"
r = s.get("http://uk.advfn.com/")
soup = BeautifulSoup(r.content)
redirect_url = soup.select_one("#redirect_url")["value"]
site = soup.select_one("#site")["value"]
data["redirect_url"] = redirect_url
p = s.post(log, data=data)
print(p.content)
print(s.get('https://it.advfn.com/mercati/BIT/generali-G/ordini').content)

完成此操作后,您将成功登录。

关于通过 POST 使用请求库进行 python 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37816565/

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