I\'m trying to login to https://www.voxbeam.com/login using requests to scrape data. I\'m a python beginner and I have done mostly tutorials, and some web scraping on my own
As said above, you should send values of all fields of form. Those can be find in the Web inspector of browser. This form send 2 addition hidden values:
url = "https://www.voxbeam.com//login"
data = {'userName':'xxxxxxxxx','password':'yyyyyyyyy','challenge':'zzzzzzzzz','hash':''}
# note that in email have encoded '@' like uuuuuuu%40gmail.com
session = requests.Session()
r = session.post(url, headers=headers, data=data)
Also, many sites have protection from a bot like hidden form fields, js, send encoded values, etc. As variants you could:
1) Use a cookies from manual login:
url = "https://www.voxbeam.com"
headers = {'user-agent': "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.98 Safari/537.36"}
cookies = {'PHPSESSID':'zzzzzzzzzzzzzzz', 'loggedIn':'yes'}
s = requests.Session()
r = s.post(url, headers=headers, cookies=cookies)
2) Use module Selenium:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
url = "https://www.voxbeam.com//login"
driver = webdriver.Firefox()
driver.get(url)
u = driver.find_element_by_name('userName')
u.send_keys('xxxxxxxxx')
p = driver.find_element_by_name('password')
p.send_keys('yyyyyyyyy')
p.send_keys(Keys.RETURN)