http - Login and upload file using Python 'requests' -
i need login , upload file . problem facing is, login page different uploading page. if have manually, i'll login (login.php) site , navigate upload page (uploader.php) upload file. have written:
import requests url1='http://www.abc.com/login.php' r = requests.post(url1, auth=('uname', 'pword')) print r.status_code //msg:'200' payload = {'upload':open('./tmp.txt')} url2='http://www.abc.com/uploader.php' r = requests.post(url2, data=payload) print r.text //msg: "you must first login upload file" my code not working expected. login part working correctly not uploading part. please how can accomplish goal.
update:
to give more insight question, giving login.php , uploader.php file details:
login.php
<form method="post" action="login.php" class="login"> <input type="text" name="username"></input> <input type="password" name="password"></input> <input type="submit" value="login"></input> uploader.php
<form action='uploader.php' method='post' id='form' class='upload' enctype="multipart/form-data" > <input type='file' name='upload' id='file'></input> <input type='button' value='analyze' name='button' onclick='javascript: checkuploadform(false)'>
make session , use session requests -
sessionobj = requests.session() sessionoj.get(...) # whatever ... a session persists cookies future requests.
, use post parameters username,password parameters required login in login.php , not auth username password.
use files parameter upload files. final code -
import requests sessionobj = requests.session() url1='http://www.abc.com/login.php' r = sessionobj.post(url1, params={'username':'usernamehere' , 'password':'password here'}) print r.status_code //msg:'200' filehandle = open('./tmp.txt') url2='http://www.abc.com/uploader.php' r = sessionobj.post(url2, data={},files = {'upload':filehandle}) print r.text
Comments
Post a Comment