instapy-quickstart icon indicating copy to clipboard operation
instapy-quickstart copied to clipboard

Got an issue 'attributeError: 'NoneType' object has no attribute 'get'

Open xProSen opened this issue 2 years ago • 14 comments

here's the full code: PS C:\Users\a\Desktop> py bot.py InstaPy Version: 0.6.16 .. .. .. .. .. .. .. .. ._. Workspace in use: "C:/Users/a/InstaPy" OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO INFO [2022-06-11 19:23:28] [itayabergell] Session started! oooooooooooooooooooooooooooooooooooooooooooooooooooooo INFO [2022-06-11 19:23:36] [i] - Cookie file for user '...' loaded... .................................................................. INFO [2022-06-11 19:24:03] Logged in successfully! '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' INFO [2022-06-11 19:24:03] [i] Saving account progress... INFO [2022-06-11 19:24:56] [ Failed to get followers count of 'b'...'' ~empty list INFO [2022-06-11 19:25:46] [] Failed to get following count of 'b'...'' ~empty list WARNING [2022-06-11 19:25:46] [...] Unable to save account progress, skipping data update b"'NoneType' object has no attribute 'get'" Traceback (most recent call last): File "C:\Users\Desktop\bot.py", line 9, in session.login() File "C:\Users\AppData\Local\Programs\Python\Python310\lib\site-packages\instapy\instapy.py", line 475, in login self.followed_by = log_follower_num(self.browser, self.username, self.logfolder) File "C:\Users×™\AppData\Local\Programs\Python\Python310\lib\site-packages\instapy\print_log_writer.py", line 21, in log_follower_num followed_by = getUserData("graphql.user.edge_followed_by.count", browser) File "C:\Users\AppData\Local\Programs\Python\Python310\lib\site-packages\instapy\util.py", line 501, in getUserData get_key = shared_data.get("entry_data").get("ProfilePage") AttributeError: 'NoneType' object has no attribute 'get' PS C:\Users\a\Desktop>

xProSen avatar Jun 11 '22 16:06 xProSen

Same issue

bri-vax avatar Jun 18 '22 12:06 bri-vax

Same issue

hassen2010 avatar Jun 20 '22 17:06 hassen2010

Same issue.

mateusz-myczkowski avatar Jun 20 '22 19:06 mateusz-myczkowski

Same issue here. Did you find a solution on that?

theoakdigital avatar Jun 23 '22 09:06 theoakdigital

Same issue

NomanBaigA avatar Jun 25 '22 22:06 NomanBaigA

Same issue

mohamadkazemt avatar Jul 01 '22 16:07 mohamadkazemt

Same here.

TimskiB avatar Jul 06 '22 13:07 TimskiB

Same issue

hamishcrichton avatar Jul 08 '22 13:07 hamishcrichton

It seems like the chain of problems starts at this code snippet from util.py:

def get_shared_data(browser):
    """
    Get shared data object from page source
    Code by schealex

    :param browser: The selenium webdriver instance
    :return shared_data: Json data from window._sharedData extracted from page source
    """
    shared_data = None
    soup = BeautifulSoup(browser.page_source, "html.parser")
    for text in soup(text=re.compile(r"window._sharedData")):
        if re.search("^window._sharedData", text):
            shared_data = json.loads(re.search("{.*}", text).group())
            break

    return shared_data

shared_data is probably None at the end of the function, right? any ideas?

TimskiB avatar Jul 08 '22 14:07 TimskiB

Same issue.

Huhnicorn avatar Jul 19 '22 18:07 Huhnicorn

same issues

nekojin116 avatar Jul 27 '22 17:07 nekojin116

same here

pedrobart avatar Aug 01 '22 21:08 pedrobart

same issue

shreesha345 avatar Sep 02 '22 10:09 shreesha345

I found a workaround in util.py at line 1118:

` def format_number (number) :

formatted_num = number.replace(",", "")
formatted_num = formatted_num.replace("\nfollowers", "")
formatted_num = formatted_num.replace("\nfollowing", "")

formatted_num = re.sub(
    r"(k)$", "00" if "." in formatted_num else "000", formatted_num
)
formatted_num = re.sub(
    r"(m)$", "00000" if "." in formatted_num else "000000", formatted_num
)
formatted_num = formatted_num.replace(".", "")
return formatted_num

`

Brrake avatar Jul 19 '23 13:07 Brrake