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