From: BenoƮt Fontaine Date: Sat, 3 Dec 2022 20:02:48 +0000 (+0100) Subject: API now need a fake user agent X-Git-Url: https://git.nutra.tk/v2?a=commitdiff_plain;h=409246df1984d5c4a9bb0aa1fb8c19f4294217eb;p=gamesguru%2Fgetmyancestors.git API now need a fake user agent --- diff --git a/getmyancestors/classes/session.py b/getmyancestors/classes/session.py index 0cc6099..d7e795e 100644 --- a/getmyancestors/classes/session.py +++ b/getmyancestors/classes/session.py @@ -3,6 +3,7 @@ import sys import time import requests +from fake_useragent import UserAgent # local imports from getmyancestors.classes.translation import translations @@ -24,6 +25,7 @@ class Session: self.timeout = timeout self.fid = self.lang = self.display_name = None self.counter = 0 + self.headers = {"User-Agent": UserAgent().firefox} self.logged = self.login() def write_log(self, text): @@ -42,10 +44,15 @@ class Session: try: url = "https://www.familysearch.org/auth/familysearch/login" self.write_log("Downloading: " + url) - r = requests.get(url, params={"ldsauth": False}, allow_redirects=False) + r = requests.get( + url, + params={"ldsauth": False}, + allow_redirects=False, + headers=self.headers, + ) url = r.headers["Location"] self.write_log("Downloading: " + url) - r = requests.get(url, allow_redirects=False) + r = requests.get(url, allow_redirects=False, headers=self.headers) idx = r.text.index('name="params" value="') span = r.text[idx + 21 :].index('"') params = r.text[idx + 21 : idx + 21 + span] @@ -60,6 +67,7 @@ class Session: "password": self.password, }, allow_redirects=False, + headers=self.headers, ) if "The username or password was incorrect" in r.text: @@ -73,7 +81,7 @@ class Session: url = r.headers["Location"] self.write_log("Downloading: " + url) - r = requests.get(url, allow_redirects=False) + r = requests.get(url, allow_redirects=False, headers=self.headers) self.fssessionid = r.cookies["fssessionid"] except requests.exceptions.ReadTimeout: self.write_log("Read timed out") @@ -103,6 +111,7 @@ class Session: self.counter += 1 if headers is None: headers = {"Accept": "application/x-gedcomx-v1+json"} + headers.update(self.headers) while True: try: self.write_log("Downloading: " + url) diff --git a/requirements.txt b/requirements.txt index b202a57..8c53acc 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,4 @@ babelfish==0.6.0 diskcache==5.2.1 requests==2.25.1 +fake-useragent==1.1.0 diff --git a/setup.cfg b/setup.cfg index 098fc98..92d8d72 100644 --- a/setup.cfg +++ b/setup.cfg @@ -18,6 +18,7 @@ install_requires = babelfish==0.6.0 diskcache==5.2.1 requests==2.25.1 + fake-useragent==1.1.0 [options.package_data] * = fstogedcom.png