[extractor/instagram] Fix Login Script Parsing

Fix login script for instagram
This commit is contained in:
Dan 2023-02-19 10:30:02 -07:00 committed by GitHub
parent 18d295c9e0
commit d59a219b65
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -58,14 +58,15 @@ def _perform_login(self, username, password):
self._LOGIN_URL, None, note='Downloading login webpage', errnote='Failed to download login webpage') self._LOGIN_URL, None, note='Downloading login webpage', errnote='Failed to download login webpage')
shared_data = self._parse_json(self._search_regex( shared_data = self._parse_json(self._search_regex(
r'window\._sharedData\s*=\s*({.+?});', login_webpage, 'shared data', default='{}'), None) r'\["XIGSharedData",\s*\[\],\s*({.+?}),\d+\]', login_webpage, 'shared data', default='{}'), None)
shared_data = shared_data.get('native', {})
login = self._download_json( login = self._download_json(
f'{self._LOGIN_URL}/ajax/', None, note='Logging in', headers={ f'{self._LOGIN_URL}/ajax/', None, note='Logging in', headers={
**self._API_HEADERS, **self._API_HEADERS,
'X-Requested-With': 'XMLHttpRequest', 'X-Requested-With': 'XMLHttpRequest',
'X-CSRFToken': shared_data['config']['csrf_token'], 'X-CSRFToken': shared_data.get('config', {}).get('csrf_token'),
'X-Instagram-AJAX': shared_data['rollout_hash'], 'X-Instagram-AJAX': shared_data.get('rollout_hash'),
'Referer': 'https://www.instagram.com/', 'Referer': 'https://www.instagram.com/',
}, data=urlencode_postdata({ }, data=urlencode_postdata({
'enc_password': f'#PWD_INSTAGRAM_BROWSER:0:{int(time.time())}:{password}', 'enc_password': f'#PWD_INSTAGRAM_BROWSER:0:{int(time.time())}:{password}',