Python - Библиотека запросов новичка

Это мой первый пост на этих форумах, и, надеюсь, вы поймете, что я новичок в программировании. Итак, я хочу сделать свой первый проект на Python, используя библиотеку запросов о чем-то, чем я очень увлечен. Это осу! загрузчик карт, в котором вы сможете загружать карты через командную строку. Прежде всего, я изучаю библиотеку запросов, чтобы получить доступ к сайту (логин). Это мой код до сих пор:

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)

Я получаю Response 200 от этого, и это здорово... но когда несколько месяцев назад я использовал похожий код, у меня был какой-то HTML, который тоже не помог, я знал, что я никак не могу подключиться,

Ошибка:

requests.exceptions.MissingSchema: Invalid URL '<Response [200]>': No schema supplied. Perhaps you meant http://<Response [200]>?

Буду признателен за любую помощь в улучшении кода, большое спасибо и извините за любые ошибки в английском, которые я сделал, а не на первом языке.

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, вы создаете и отбрасываете сеанс для каждого запроса. Это гораздо эффективнее.

Другие вопросы по тегам