gpt4 book ai didi

python - 使用 requests.post 登录结果为 "Error 405 Not allowed"

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

我的目标是从 consumerreports.com 抓取数据,因此我在这个项目中使用“请求”和“beautifulsoup”。除了 Webscraping,我在通过请求成功登录 consumerreports.com 时遇到了很多麻烦。

这是我的代码:我创建了两个文本文件,我在其中写了帖子和回复,所以我可以检查它是否成功登录。

import requests
import os.path

#declares any necessary variables
#file1, file2 to check if login is successful

save_path = '/Users/myName/Documents/Webscraping Project/'
login_url = 'https://www.consumerreports.org/cro/index.htm'
my_url = 'https://www.consumerreports.org/cro/index.htm'
pName = os.path.join(save_path, 'post text file'+".txt")
rName = os.path.join(save_path, 'response text file'+".txt")
post_file = open(pName, "w")
response_file = open(rName, "w")

#login using Session class from Requests package
with requests.Session() as s:

payload = {"userName":"myName@university.edu","password":"my_password"}
p = s.post(login_url, data=payload)
print(p.text)

r = s.get(my_url)

#saves files to see if login was successful

post_file.write(str(p.text.encode('utf-8')))
response_file.write(str(r.text.encode('utf-8')))
post_file.close()
response_file.close()


print('Files created.')

这是我得到的:

<!DOCTYPE html>
<html>
<head>
<title>405 Not allowed.</title>
</head>
<body>
<h1>Error 405 Not allowed.</h1>
<p>Not allowed.</p>
<h3>Guru Meditation:</h3>
<p>XID: #some number </p>
<hr>
<p>Varnish cache server</p>
</body>
</html>

另外,我查看了'response text file.txt'的内容,通过基本的ctrl+f功能可以判断系统没有登录成功。

似乎网络服务器不接受“post”方法,至少对于这个特定的 url,这就是它返回错误的原因。但是,我不知道如何从这里开始。上网查了一下,有人建议用

response = requests.get(login_url, headers={'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36'})

创建一个用户代理来“登录”或其他什么。我对 python 还是很陌生,所以任何建议都将不胜感激。

最佳答案

您可能需要在 s.post 中添加 header 此错误有解决方案 here .它对我有用。希望这会有所帮助。

关于python - 使用 requests.post 登录结果为 "Error 405 Not allowed",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50788971/

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