Access Lovoo API using Python
An alternative approach would be the use of selenium for login and further using the session with requests.
E.g.
def login(user, pw):
chrome_options = Options()
chrome_options.add_experimental_option("detach", True)
driver = webdriver.Chrome(options=chrome_options)
driver.get("https://www.lovoo.com/login_check")
user_agent = driver.execute_script("return navigator.userAgent;")
iframe = driver.find_element(By.ID,"gdpr-consent-notice")
driver.switch_to.frame(iframe)
privacybutton = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.XPATH,"//b[contains(text(),'Accept All')]"))
)
privacybutton.click()
driver.switch_to.default_content()
loginbutton = WebDriverWait(driver, 4).until(
EC.presence_of_element_located((By.XPATH, "//button[contains(text(),'Log in')]"))
)
loginbutton.click()
loginbutton2=WebDriverWait(driver, 4).until(
EC.presence_of_element_located((By.XPATH, "//button[contains(@data-automation-id,'login-submit-button')]"))
)
driver.find_element(By.XPATH, '//input[@name="authEmail"]').send_keys(user)
driver.find_element(By.XPATH, '//input[@name="authPassword"]').send_keys(pw)
webdriver.ActionChains(driver).move_to_element(loginbutton2).click(loginbutton2).perform()
element = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.ID, "topmenu"))
)
return user_agent, driver.get_cookies()
(lat,lon)=(0.0,0.0)
with requests.Session() as session:
user_agent, cookies = login(user, pw)
session.cookies.update({c['name']: c['value'] for c in cookies})
session.headers.update({'User-Agent': user_agent})
session.get(f'https://www.lovoo.com/api_web.php/users?ageFrom=0&ageTo=2&latitude={lat}&longitude={lon}')