title: Loop through payload Python
body: <p>There is a site that i connect to, but need to login 4 times with different user names and passwords.</p>
  
  <p>Is there anyway that i can do this by looping through the usernames and passwords in a payload.</p>
  
  <p>This is the first time im am doing this and am not really sure of how to go about it.
  The code works fine if i post just one username and password.</p>
  
  <p>Im using Python 2.7 and BeautifulSoup and requests.</p>
  
  <p>Here is my code.</p>
  
  <pre><code>import requests
  import zipfile, StringIO
  from bs4 import BeautifulSoup
  
  # Here were add the login details to be submitted to the login form.
  payload = [
  {'USERNAME': 'xxxxxx','PASSWORD': 'xxxxxx','option': 'login'},
  {'USERNAME': 'xxxxxx','PASSWORD': 'xxxxxxx','option': 'login'},
  {'USERNAME': 'xxxxx','PASSWORD': 'xxxxx','option': 'login'},
  {'USERNAME': 'xxxxxx','PASSWORD': 'xxxxxx','option': 'login'},
  ]
  #Possibly need headers later.
  headers = {'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36'}
  base_url = "https://service.rl360.com/scripts/customer.cgi/SC/servicing/"
  
  with requests.Session() as s:
          p = s.post('https://service.rl360.com/scripts/customer.cgi?option=login', data=payload)
  
          # Get the download page to scrape.
          r = s.get('https://service.rl360.com/scripts/customer.cgi/SC/servicing/downloads.php?Folder=DataDownloads&amp;SortField=ExpiryDays&amp;SortOrder=Ascending', stream=True)
          content = r.text
          soup = BeautifulSoup(content, 'lxml')
          #Now i get the most recent download URL.
          download_url = soup.find_all("a", {'class':'tabletd'})[-1]['href']
          #now we join the base url with the download url.
          download_docs = s.get(base_url + download_url, stream=True)
          print "Checking Content"
          content_type = download_docs.headers['content-type']
          print content_type
          print "Checking Filename"
          content_name = download_docs.headers['content-disposition']
          print content_name
          print "Checking Download Size"
          content_size = download_docs.headers['content-length']
          print content_size
  
          #This is where we extract and download the specified xml files.
          z = zipfile.ZipFile(StringIO.StringIO(download_docs.content))
          print "---------------------------------"
          print "Downloading........."
          #Now we save the files to the specified location.
          z.extractall('C:\Temp')
          print "Download Complete"
  </code></pre>