36 lines
848 B
Python
36 lines
848 B
Python
import urllib.request
|
|
import json
|
|
import os
|
|
|
|
def getPage(number):
|
|
return json.loads(urllib.request.urlopen('https://gdbrowser.com/api/search/*?diff=1&count=500&type=mostliked&page={0}'.format(number)).read().decode())
|
|
|
|
def parseLevel(level):
|
|
if level['stars'] == 2:
|
|
print('Adding {0}'.format(level['name']))
|
|
# id, name
|
|
lines.append('{0},{1},{2}\n'.format(level['id'], level['name']))
|
|
|
|
def saveFile():
|
|
file.flush()
|
|
os.fsync(file.fileno())
|
|
|
|
number = 0
|
|
page = getPage(number)
|
|
lines = []
|
|
|
|
file = open(os.path.dirname(os.path.realpath(__file__)) + '/2stars.csv', 'r+')
|
|
file.truncate(0)
|
|
|
|
while page != -1:
|
|
for level in page:
|
|
parseLevel(level)
|
|
number += 1
|
|
print('Page {0} parsed! Moving to page {1}'.format(number - 1, number))
|
|
if len(lines) > 0:
|
|
file.writelines(lines)
|
|
saveFile()
|
|
lines = []
|
|
page = getPage(number)
|
|
|
|
file.close()
|