JoMingyu / google-play-scraper

Google play scraper for Python inspired by <facundoolano/google-play-scraper>
MIT License
757 stars 207 forks source link

[BUG] When run app() multiple times, categories list in output is wrong. #179

Open GuanHenan opened 1 year ago

GuanHenan commented 1 year ago

I find a bug in constants/element.py, line 42

def extract_categories(s, categories=None): if categories == None: categories = [] if s == None or len(s) == 0: return categories if len(s) >= 4 and type(s[0]) is str: categories.append({"name": s[0], "id": s[2]}) else: for sub in s: extract_categories(sub, categories) return categories

The problem is using list as the default parameter. It does not work as expected. It's recommended to use None as the default value and initialize the list inside the function if it's None.

GuanHenan commented 1 year ago

Modify the function extract_categories in google_play_scraper/constants/element.py as following:

def extract_categories(s, categories=None):
    if categories == None:
        categories = []
    if s == None or len(s) == 0:
        return categories

    if len(s) >= 4 and type(s[0]) is str:
        categories.append({"name": s[0], "id": s[2]})
    else:
        for sub in s:
            extract_categories(sub, categories)

    return categories
JoMingyu commented 1 year ago

Oops. I'll fix it in the next release.

puntu commented 5 months ago

@JoMingyu when I run the app multiple times, I can not fetch more than a few hundreds of reviews even though millions of reviews are available. It is happening for popular apps like Google meet. My research work is not progressing. I am a doctoral scholar. Please take care..