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 

docs.


Comments

Popular posts from this blog

How to mention the localhost in android -

php - Calling a template part from a post -

c# - String.format() DateTime With Arabic culture -