よく、不正ログインの防ぐために、画像認証などありますが、どうやってプログラムからログインしてるのか、やっとわかりました。
まず、以前自作したメールボックス
http://open-box.co/login.php

phpで、username, passwordをmysqlと照合してcheckしています。
public function login($username, $password){
$stmt = $this->mysqli->prepare(
"SELECT password FROM users WHERE username = ?");
$stmt->bind_param('s', $_POST["username"]);
$stmt->execute();
$stmt->store_result();
if($stmt->num_rows == 1){
$stmt->bind_result($hash);
while ($stmt->fetch()){
if(password_verify($_POST['password'], $hash)){
$_SESSION["username"] = $_POST["username"];
return true;
}
}
}
return false;
}
pythonでusernameとpasswordのsessionをpostします。
import requests
from bs4 import BeautifulSoup
from urllib.parse import urljoin
USER = "hoge"
PASS = "hogehoge"
session = requests.session()
login_info = {
"username" : USER,
"password": PASS,
}
url_login = "http://open-box.co/login.php"
res = session.post(url_login, data=login_info)
res.raise_for_status()
print("success")
エラーだと、res.raise_for_status()でエラーが表示される筈ですが、、、
来た!!!!!
[vagrant@localhost python]$ python3 app.py
success
bs4も使いたい。