From ace2c16f54a833ff7391cfb2bc38b7b9685919fa Mon Sep 17 00:00:00 2001 From: AccentuSoft <89561043+AccentuSoft@users.noreply.github.com> Date: Thu, 17 Feb 2022 15:42:46 +0200 Subject: [PATCH 1/2] Fix Vkontakte-user module crash on users with millions of followers --- snscrape/modules/vkontakte.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/snscrape/modules/vkontakte.py b/snscrape/modules/vkontakte.py index 5bed330..03f16db 100644 --- a/snscrape/modules/vkontakte.py +++ b/snscrape/modules/vkontakte.py @@ -347,9 +347,11 @@ class VKontakteUserScraper(snscrape.base.Scraper): if websites: kwargs['websites'] = websites - def parse_num(s): + def parse_num(s: str) -> int: if s.endswith('K'): return int(s[:-1]) * 1000, 1000 + elif s.endswith('M'): + return int(float(s[:-1]) * 1000000), 1000000 else: return int(s.replace(',', '')), 1 From b1cfd5112154d02cac23c854f1d19fdd3090e3a9 Mon Sep 17 00:00:00 2001 From: AccentuSoft <89561043+AccentuSoft@users.noreply.github.com> Date: Thu, 17 Feb 2022 21:52:15 +0200 Subject: [PATCH 2/2] Implementing changes --- snscrape/modules/vkontakte.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/snscrape/modules/vkontakte.py b/snscrape/modules/vkontakte.py index 03f16db..ea33b44 100644 --- a/snscrape/modules/vkontakte.py +++ b/snscrape/modules/vkontakte.py @@ -347,11 +347,15 @@ class VKontakteUserScraper(snscrape.base.Scraper): if websites: kwargs['websites'] = websites - def parse_num(s: str) -> int: + def parse_num(s: str) -> typing.Tuple[int, int]: if s.endswith('K'): return int(s[:-1]) * 1000, 1000 elif s.endswith('M'): - return int(float(s[:-1]) * 1000000), 1000000 + baseNum = s[:-1] + precision = 1000000 + if '.' in s: + precision //= (10 ** len(baseNum.split('.')[1])) + return int(float(baseNum) * 1000000), precision else: return int(s.replace(',', '')), 1