本文整理汇总了Python中googleplay.GooglePlayAPI.login方法的典型用法代码示例。如果您正苦于以下问题:Python GooglePlayAPI.login方法的具体用法?Python GooglePlayAPI.login怎么用?Python GooglePlayAPI.login使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类googleplay.GooglePlayAPI
的用法示例。
在下文中一共展示了GooglePlayAPI.login方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: Downloader
# 需要导入模块: from googleplay import GooglePlayAPI [as 别名]
# 或者: from googleplay.GooglePlayAPI import login [as 别名]
class Downloader():
def __init__(self):
self.api = GooglePlayAPI(ANDROID_ID)
self.api.login(GOOGLE_LOGIN, GOOGLE_PASSWORD, AUTH_TOKEN)
def download(self, pkg, filename):
doc = self.api.details(pkg).docV2
vc = doc.details.appDetails.versionCode
data = self.api.download(pkg, vc)
with open(filename, 'wb') as apk:
apk.write(data)
def downloadall(self, dbname, outdir, maxsize=None):
mkdir(outdir)
with sqlite3.connect(dbname, timeout=10) as db:
with closing(db.cursor()) as cur:
cur.execute(create)
for pkg, size in cur.execute(select).fetchall():
print 'Processing %s (%s) ...' % (pkg, size)
if not sizeallowed(size, maxsize):
print Fore.YELLOW + ' [SKIP: too big (%s)]' % size
continue
path = os.path.join(outdir, pkg + '.apk')
try:
self.download(pkg, path)
except Exception as e:
print Fore.RED + ' [ERROR: %s]' % e.message
else:
print Fore.GREEN + ' [OK: downloaded to %s]' % path
cur.execute(insert, (pkg, path))
db.commit()
示例2: download
# 需要导入模块: from googleplay import GooglePlayAPI [as 别名]
# 或者: from googleplay.GooglePlayAPI import login [as 别名]
def download():
package = args.package
filename = package + ".apk"
# Connect
api = GooglePlayAPI(args.device, lang='en_US')
api.login(args.email, args.password, None)
# Get the version code and the offer type from the app details
m = api.details(package)
doc = m.docV2
vc = doc.details.appDetails.versionCode
ot = doc.offer[0].offerType
# Download
if args.target_arch:
str_target_arch = '-%s' % args.target_arch
else:
str_target_arch = ''
filename = '%s%s-%s.apk' % (get_datetime(), str_target_arch, package)
dir_out = args.dir_out
if dir_out:
filename = dir_out + '/' + filename
data = api.download(package, vc, ot)
open(filename, "wb").write(data)
示例3: main
# 需要导入模块: from googleplay import GooglePlayAPI [as 别名]
# 或者: from googleplay.GooglePlayAPI import login [as 别名]
def main():
search_term = sys.argv[1]
'''
apps will be a list of dicts describing each returned app:
{'app_name':<app name>,'app_id':<app id>,'app_creator':<creator>,'app_permissions':[list]}
'''
apps = []
nb_res = 100 # apps to retrieve. API allows for max of 100.
offset = 0
api = GooglePlayAPI(ANDROID_ID)
api.login(GOOGLE_LOGIN, GOOGLE_PASSWORD, AUTH_TOKEN)
try:
message = api.search(search_term, nb_res, offset)
except:
print "Error: something went wrong. Google may be throttling or rejecting the request."
sys.exit(1)
doc = message.doc[0]
for c in doc.child:
permissions = []
details = api.details(c.docid)
for line in details.docV2.details.appDetails.permission:
permissions.append(line)
apps.append({'app_name':c.title,'app_id':c.docid,'app_creator':c.creator,'app_permissions':permissions})
'''
We are interested in the set of all possible permissions that start with 'ANDROID.'
'''
permissions = Set([])
for app in apps:
for permission in app["app_permissions"]:
if permission.upper()[0:8] == "ANDROID.":
permissions.add(permission.upper())
'''
Create ARFF output for Weka
'''
dataset = open(search_term + ".arff",'w')
dataset.write("@relation Appdata\n")
dataset.write("@attribute index NUMERIC\n")
dataset.write("@attribute app_name STRING\n")
for att in permissions:
dataset.write("@attribute "+ att + " {0,1}\n")
dataset.write("@data\n")
i = 0 # index for cross-referencing
for app in apps:
print("{} {}").format(str(i), str(app)) # index
perm_str = str(i) + ',' + app['app_id'] + ','
app_perm_upper = []
for app_permission in app['app_permissions']:
app_perm_upper.append(app_permission.upper())
for permission in permissions:
if permission in app_perm_upper:
perm_str = perm_str + '1,'
else:
perm_str = perm_str + '0,'
dataset.write(perm_str[:-1])
dataset.write("\n")
i += 1
示例4: login
# 需要导入模块: from googleplay import GooglePlayAPI [as 别名]
# 或者: from googleplay.GooglePlayAPI import login [as 别名]
def login(logger):
api = None
try:
api = GooglePlayAPI(ANDROID_ID)
api.login(GOOGLE_LOGIN, GOOGLE_PASSWORD, AUTH_TOKEN)
except Exception as e:
logger.debug('login google error %s' % e)
return api
示例5: connect
# 需要导入模块: from googleplay import GooglePlayAPI [as 别名]
# 或者: from googleplay.GooglePlayAPI import login [as 别名]
def connect(android_id, google_login, google_password, auth_token):
api = GooglePlayAPI(android_id)
try:
api.login(google_login, google_password, auth_token)
except:
print >> sys.stderr, int(time.time())
traceback.print_exc(file=sys.stderr)
return api
示例6: login
# 需要导入模块: from googleplay import GooglePlayAPI [as 别名]
# 或者: from googleplay.GooglePlayAPI import login [as 别名]
def login():
api = None
try:
api = GooglePlayAPI(ANDROID_ID)
api.login(GOOGLE_LOGIN, GOOGLE_PASSWORD, AUTH_TOKEN)
except Exception as e:
print e
return api
示例7: scrape
# 需要导入模块: from googleplay import GooglePlayAPI [as 别名]
# 或者: from googleplay.GooglePlayAPI import login [as 别名]
def scrape(id, package):
packagename = package
res = urllib2.urlopen("https://play.google.com/store/apps/details?id=%s&hl=en" % packagename)
html = res.read()
path = "assets/%d/" % id
if not os.path.exists(path):
os.makedirs(path)
name = html.split('itemprop="name"')[1].split("</div>")[0].split("<div>")[1]
desc = html.split('<div class="show-more-content text-body" itemprop="description">')[1].split(
'<div class="show-more-end">'
)[0]
rating = html.split("Rated ")[1].split(" stars")[0]
category = html.split('<span itemprop="genre">')[1].split("</span>")[0]
stuff = []
for line in html.split("</div>"):
if "full-screenshot" in line:
url = line.split('src="')[1][:-3]
stuff.append(url)
x = 0
for img in stuff[1:]:
print img
urllib.urlretrieve(img, "%s%d.webp" % (path, x))
x += 1
filename = path + packagename + ".apk"
# Connect
api = GooglePlayAPI(ANDROID_ID)
api.login(GOOGLE_LOGIN, GOOGLE_PASSWORD, AUTH_TOKEN)
# Get the version code and the offer type from the app details
m = api.details(packagename)
doc = m.docV2
vc = doc.details.appDetails.versionCode
ot = doc.offer[0].offerType
# Download
print "Downloading %s..." % sizeof_fmt(doc.details.appDetails.installationSize),
data = api.download(packagename, vc, ot)
open(filename, "wb").write(data)
print "Done"
ap = apk.APK(filename)
badging = os.popen("/home/thomas/dev/android-odroid/out/host/linux-x86/bin/aapt dump badging %s" % filename).read()
for line in badging.split("\n"):
if "launchable-activity" in line:
activity = line.split("'")[1]
return [name, desc, rating, package, activity, category]
示例8: download_apk
# 需要导入模块: from googleplay import GooglePlayAPI [as 别名]
# 或者: from googleplay.GooglePlayAPI import login [as 别名]
def download_apk(packagename, filename):
# Connect
api = GooglePlayAPI(ANDROID_ID)
api.login(GOOGLE_LOGIN, GOOGLE_PASSWORD, AUTH_TOKEN)
# Get the version code and the offer type from the app details
m = api.details(packagename)
doc = m.docV2
vc = doc.details.appDetails.versionCode
ot = doc.offer[0].offerType
# Download
print "Downloading %s..." % sizeof_fmt(doc.details.appDetails.installationSize),
data = api.download(packagename, vc, ot)
open(filename, "wb").write(data)
print "Done"
示例9: login
# 需要导入模块: from googleplay import GooglePlayAPI [as 别名]
# 或者: from googleplay.GooglePlayAPI import login [as 别名]
def login(id, mail, password, token):
""" Login to the Google Play Store.
You can either specify the mail and password, or use
a valid auth token.
Arguments:
id -- the android phone ID
mail -- the email address of the account
password -- the password of the account
token -- a valid auth token
Returns:
A Google Play API object.
"""
api = GooglePlayAPI(id)
api.login(mail, password, token)
return api
示例10: downloadAPKs
# 需要导入模块: from googleplay import GooglePlayAPI [as 别名]
# 或者: from googleplay.GooglePlayAPI import login [as 别名]
def downloadAPKs(start):
crawler = CrawlerThread("../playapks/", startappID)
crawler.start()
time.sleep(1)
threads = []
playapi = GooglePlayAPI()
playapi.login("[email protected]", "niklashaxor42")
for i in range(4): # 4 download threads
t = DownloadThread(appQueue, "../playapks/", playapi)
t.start()
threads.append(t)
filewriter = FileThread()
filewriter.start()
done = False
#OMG DON'T DIE!
while not done:
test = raw_input(">")
if test == "exit":
print "Killing threads..."
for thread in threads:
thread.stop()
crawler.stop()
filewriter.stop()
while len([t for t in threads if t.stopped == True]):
time.sleep(1)
print "Waiting for threads to finish..."
print "Exiting..."
done = True
if os.path.exists("queue.txt"):
os.remove("queue.txt")
queueFile = open("queue.txt", 'w')
for a in list(appQueue.queue):
queueFile.write(a+"\n")
queueFile.close()
示例11: findAppInfo
# 需要导入模块: from googleplay import GooglePlayAPI [as 别名]
# 或者: from googleplay.GooglePlayAPI import login [as 别名]
def findAppInfo(packageName):
request = packageName
nb_res = None
offset = None
api = GooglePlayAPI(ANDROID_ID)
api.login(GOOGLE_LOGIN, GOOGLE_PASSWORD, AUTH_TOKEN)
try:
message = api.search(request, nb_res, offset)
doc = message.doc[0]
for c in doc.child:
if c.docid.startswith(packageName):
result = {}
result["creator"] = c.creator
result["price"] = c.offer[0].formattedAmount
return result
except Exception, e:
print str(e)
示例12: list
# 需要导入模块: from googleplay import GooglePlayAPI [as 别名]
# 或者: from googleplay.GooglePlayAPI import login [as 别名]
def list(cat, ctr = None, nb_results = None, offset = None):
api = GooglePlayAPI(ANDROID_ID)
api.login(GOOGLE_LOGIN, GOOGLE_PASSWORD, AUTH_TOKEN)
try:
message = api.list(cat, ctr, nb_results, offset)
except:
print "Error: HTTP 500 - one of the provided parameters is invalid"
if (ctr is None):
print SEPARATOR.join(["Subcategory ID", "Name"])
for doc in message.doc:
print SEPARATOR.join([doc.docid.encode('utf8'), doc.title.encode('utf8')])
else:
print_header_line()
doc = message.doc[0]
results = []
for c in doc.child:
results.append(get_parsed_result(c))
return results
示例13: elif
# 需要导入模块: from googleplay import GooglePlayAPI [as 别名]
# 或者: from googleplay.GooglePlayAPI import login [as 别名]
print "You did not provide AppID. This parameter default is com.WiredDFW.DIRECTV.unWiredRemoteLite"
elif (len(sys.argv) == 2):
packageName = sys.argv[1]
elif (len(sys.argv) >= 3):
print "Wrong input, there may be a tab character!"
sys.exit(0)
# Check request content
print "packageName:",packageName
api = GooglePlayAPI(ANDROID_ID)
api.login(GOOGLE_LOGIN, GOOGLE_PASSWORD, AUTH_TOKEN)
#for i in range(MAX_RESULTS/NB_RESULTS):
response = api.details(packageName)
#j = response.getResponse
c = response.docV2
CATEGORY = c.details.appDetails.appCategory
print "anh yeu em"
print c
#print j.docid.encode('utf8')
#write_result_line(j,saveFile)
print "Em khong yeu anh"
print_details_line(c)
l = [
示例14: getReviews
# 需要导入模块: from googleplay import GooglePlayAPI [as 别名]
# 或者: from googleplay.GooglePlayAPI import login [as 别名]
def getReviews(packageName,pip):
NB_RES = 20;
MAX_RESULTS = 500;
#packageName = "com.WiredDFW.DIRECTV.unWiredRemoteLite" #Default value
#packageName = "com.happybug.livewallpaper.jellyfishlite"
print "Nextline:", packageName
filterByDevice=False
sort=0
api = GooglePlayAPI(ANDROID_ID)
api.login(GOOGLE_LOGIN, GOOGLE_PASSWORD, AUTH_TOKEN,pip)
#response = api.reviewById(packageName, filterByDevice, ID)
#print response
for s in range(4):
sort = s
time.sleep(3)
for m in range(MAX_RESULTS/NB_RES):
time.sleep(1)
response = api.reviews(packageName, filterByDevice, sort, str(NB_RES),str(m*NB_RES),pip=pip)
# print response
for n in range(NB_RES):
try:
c = response.getResponse.review[n]
l = [
c.documentVersion,
c.timestampMsec,
c.starRating,
c.title,
c.comment,
c.commentId,
c.deviceName,
# c.replyText,
# c.replyTimestampMsec,
]
#Check whether comment exists
fileName = "%d.%s.csv" %(s,packageName)
openfile = open(fileName,"a+")
previousFileName = "previous.%s.csv" %packageName
openPreviousFile = open(previousFileName,"a+")
if hasInFile(openfile,c.commentId, c.timestampMsec) or hasInFile(openPreviousFile,c.commentId,c.timestampMsec):
openfile.close()
openPreviousFile.close()
continue
else:
print "There is new review of s = %d m = %d n = %d" %(s,m,n)
saveFile = open(fileName, "a+b")
savePreviousFile = open(previousFileName, "a+b")
wpb = UnicodeWriter(savePreviousFile)
wb = UnicodeWriter(saveFile)
k = []
for i in range(len(l)):
if isinstance(l[i], basestring):
if isinstance(l[i],unicode):
l[i] = l[i].encode("utf-8")
l[i] = removeSpecialKey(l[i])
# print i
# print type(l[i])
# print l[i]
k = k + [l[i]]
wb.writerow(k)
wpb.writerow(k)
saveFile.close()
savePreviousFile.close()
except IndexError:
print IndexError
break
print "Getting %d to %d ..." %(m*20,(m+1)*20)
示例15: elif
# 需要导入模块: from googleplay import GooglePlayAPI [as 别名]
# 或者: from googleplay.GooglePlayAPI import login [as 别名]
if ((len(sys.argv) >= 3) and (len(sys.argv)<5)):
filename = sys.argv[2]
google_pass = sys.argv[3]
elif (len(sys.argv)<3):
filename = packagename + ".apk"
google_pass = getpass.getpass()
else:
print "Usage: %s packagename filename, password]"
print "Download an app."
print "If filename is not present, will write to packagename.apk."
print "If password is not present, user will be prompted for one"
sys.exit(0)
# Connect
api = GooglePlayAPI(ANDROID_ID)
api.login(GOOGLE_LOGIN, google_pass, AUTH_TOKEN)
# Get the version code and the offer type from the app details
m = api.details(packagename)
doc = m.docV2
vc = doc.details.appDetails.versionCode
ot = doc.offer[0].offerType
# Download
print "Downloading %s..." % sizeof_fmt(doc.details.appDetails.installationSize),
data = api.download(packagename, vc, ot)
open(filename, "wb").write(data)
print "Done"