这是我在这些论坛上的第一篇文章,希望你能理解,我也是一名编程新手。 所以,我想在Python中使用请求库完成我的第一个关于我非常热衷的事情的项目。这是一个奥苏! map downloader,您可以在其中通过命令行下载地图。首先,我正在学习请求库以访问网站(登录)。 到目前为止,这是我的代码:
import requests
import time
inUserName = input("Nickname: ")
inUserPass = input("Password: ")
req = requests.get("http://osu.ppy.sh/p/api")
from requests.auth import HTTPBasicAuth
requests.get("https://osu.ppy.sh/forum/ucp.php?mode=login", auth=HTTPBasicAuth(inUserName, inUserPass))
with requests.Session() as session:
POSTrequest = session.post(url=req, data={'username': inUserName, 'password': inUserPass})
time.sleep(2)
我从这里得到了响应200,这很棒..但几个月前,我使用了类似的代码,我得到了一些HTML也没有用,我知道我没有以任何方式联系。
错误是:
requests.exceptions.MissingSchema: Invalid URL '<Response [200]>': No schema supplied. Perhaps you meant http://<Response [200]>?
对于改进代码的任何帮助都将不胜感激,非常感谢并且对于我所犯的任何英语错误感到抱歉。
答案 0 :(得分:1)
因此,您已经为您的某个帖子指定了url
。
import requests
import time
inUserName = input("Nickname: ")
inUserPass = input("Password: ")
osuApiUrl = "http://osu.ppy.sh/p/api"
session = requests.Session()
req = session.get(osuApiUrl)
session.get("https://osu.ppy.sh/forum/ucp.php?mode=login", auth=(inUserName, inUserPass))
POSTrequest = session.post(url=osuApiUrl, data={'username': inUserName, 'password': inUserPass})
if POSTrequests.status_code == 200:
print(POSTrequests.text)
print(r.status_code)
time.sleep(2)
此外,如果服务器设置了任何cookie,您应该使用整个脚本的会话。通过使用功能API,您可以为每个请求创建和放弃会话。这样效率更高。