首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用requests.post登录会导致"Error 405 Not allowed“

使用requests.post登录会导致"Error 405 Not allowed“
EN

Stack Overflow用户
提问于 2018-06-11 07:39:38
回答 1查看 4.3K关注 0票数 4

我的目标是从consumerreports.com中抓取数据,所以我在这个项目中使用了“请求”和“漂亮汤”。抛开网络抓取不谈,我在通过请求成功登录consumerreports.com时遇到了很多问题。

下面是我的代码:我创建了两个文本文件,并在其中编写post和response,这样我就可以检查它是否成功登录。

代码语言:javascript
复制
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.')

这是我得到的:

代码语言:javascript
复制
<!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功能确定系统没有成功登录。

似乎web服务器不接受'post‘方法,至少对于这个特定的url是这样,这就是它返回错误的原因。然而,我不知道如何从这里开始。我上网看了看,有人建议我用

代码语言:javascript
复制
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的新手,所以如果有任何建议,我将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2019-01-28 15:30:35

您可能需要在s.post中添加标头此错误here有一个解决方案。这对我很管用。希望这能有所帮助。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50788971

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档