JoMingyu / google-play-scraper

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

[FEAT-REQ] Autocomplete suggestions #190

Open EzequielAdrianM opened 1 year ago

EzequielAdrianM commented 1 year ago

Hello this is the only Python library for Google Play. Can you please incorporate the suggest feature? It uses the autocomplete from google play. The NodeJS library you are basing this one already implemented the function.

EzequielAdrianM commented 1 year ago

Here is the code I made myself after reverse engineering the facundoolano NodeJS Google Play Scraper. I hope this piece of code can help you to add the functionality to this Python library.

import requests
from urllib.parse import quote
import json

country = "us"
lang = "en"
autocomplete_term = "anonymous chat"
headers = {'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'}
url = "https://play.google.com/_/PlayStoreUi/data/batchexecute?rpcids=IJ4APc&f.sid=-697906427155521722&bl=boq_playuiserver_20190903.08_p0&hl="+lang+"&gl="+country+"&authuser&soc-app=121&soc-platform=1&soc-device=1&_reqid=1065213"
term = quote(autocomplete_term)
body = "f.req=%5B%5B%5B%22IJ4APc%22%2C%22%5B%5Bnull%2C%5B%5C%22"+term+"%5C%22%5D%2C%5B10%5D%2C%5B2%5D%2C4%5D%5D%22%5D%5D%5D"
r = requests.post(url, data=body, headers=headers)
jsonresult = json.loads(r.text[5:])
data = jsonresult[0][2]
second = json.loads(data)
third = second[0][0]
if third is not None:
    for cuarto in third:
        #Print the autosuggest search terms
        print(cuarto[0])
else:
    print("No results!")
JoMingyu commented 1 year ago

Thanks so much for the code sample. But I'm really sorry, but my engineering work is so busy these days that I don't have much time to take care of this library. But I'll try to get it done by October if possible.