backend-collector/test_scrap_fl.py

51 lines
2.5 KiB
Python
Raw Normal View History

2024-02-12 22:49:17 +01:00
import time, requests, os
2024-02-10 18:55:05 +01:00
from selenium import webdriver #Webdriver de Selenium qui permet de contrôler un navigateur
from webdriver_manager.chrome import ChromeDriverManager #Assure la gestion du webdriver de Chrome
from selenium.webdriver.chrome.options import Options
2024-02-10 23:19:04 +01:00
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
2024-02-10 18:55:05 +01:00
chrome_options = Options()
#chrome_options.add_argument("--headless=new") # for Chrome >= 109
browser = webdriver.Chrome() #Initialisation du driver
browser.get("https://fetlife.com/login")
2024-02-12 22:49:17 +01:00
user_agent = browser.execute_script("return navigator.userAgent;")
2024-02-10 23:19:04 +01:00
time.sleep(1)
2024-02-12 22:49:17 +01:00
print("user-agent : {0}".format(user_agent))
2024-02-10 23:19:04 +01:00
print("authencity_token : {0}".format(browser.find_element(By.NAME, "authenticity_token").get_attribute("value")))
2024-02-12 22:49:17 +01:00
authencity_token=browser.find_element(By.NAME, "authenticity_token").get_attribute("value")
2024-02-10 23:19:04 +01:00
cookie = ["_cfuvid", "__cf_bm", "_fl_sessionid", "cf_clearance", "fetlife_pwa", "language"]
2024-02-12 22:49:17 +01:00
cookies = {}
2024-02-10 23:19:04 +01:00
for i in cookie:
if browser.get_cookie(i) is not None:
print("{0}: {1}".format(i, browser.get_cookie(i)["value"]))
2024-02-12 22:49:17 +01:00
cookies[i]=browser.get_cookie(i)["value"]
2024-02-10 23:19:04 +01:00
2024-02-10 18:55:05 +01:00
browser.quit()
2024-02-10 23:19:04 +01:00
2024-02-12 22:49:17 +01:00
headers = {"Connection":"keep-alive",
"Host":"fetlife.com",
"Cache-Control":"max-age=0",
"Origin":"https://fetlife.com",
"Referer":"https://fetlife.com/login", "User-Agent":user_agent, "TE": "trailers", "Upgrade-Insecure-Requests":"1",
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",
"Content-Type": "application/x-www-form-urlencoded",
"DNT":"1",
"Sec-Fetch-Dest": "document",
"Sec-Fetch-Mode":"navigate",
"Sec-Fetch-Site": "same-origin",
"Sec-Fetch-User":"?!",
"Set-GPC":"1",
"Accept-Encoding": "gzip, deflate, br",
"Accept-Language":"fr-FR,fr;q=0.9"
}
payload = {"authenticy_token":authencity_token, "button":"", "fake_username":"", "fake_safari_password":"", "user":{"otp_attempt":"step_1","locale":"fr","login":os.environ["USER"],"password":os.environ["PASSWORD"]}}
data_raw = "fake_username=&fake_safari_password=&authenticity_token={0}&user%5Botp_attempt%5D=step_1&user%5Blocale%5D=fr&user%5Blogin%5D={1}&user%5Bpassword%5D={2}&button=".format(authencity_token, os.environ["USER"], os.environ["PASSWORD"])
print(headers)
print(cookies)
print(data_raw)
r = requests.post("https://fetlife.com/login", headers=headers, data=payload, cookies=cookies)
print(r.status_code)
#print(r.content)