SHARE
TWEET

js.py

a guest Feb 16th, 2020 58 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import json
  2. import requests
  3. import sqlite3
  4.  
  5. url_categories = "https://gamebanana.com/maps/games/4660?api=CategoriesListModule" #Страница с категориями карт
  6. url_maps = "https://gamebanana.com/maps/games/4660?api=SubmissionsListModule" #Страница с картами
  7. url_maps_page = "https://gamebanana.com/maps/games/4660?api=SubmissionsListModule&mid=SubmissionsList&vl[page]="
  8. url_info = "https://api.gamebanana.com/Core/Item/Data?itemtype=Map&fields=Files().aFiles()&itemid="
  9.  
  10. f = open('data.db', 'w') #Создаём или очищаем файл базы данных
  11. f.close()
  12.  
  13. conn = sqlite3.connect('data.db') #Подключаем базу данных
  14. cursor = conn.cursor()
  15.  
  16. cursor.execute("CREATE TABLE all_maps (name TEXT, id INT, url TEXT, category TEXT)") #Создаём таблицу со всеми картами
  17.  
  18.  
  19. #Создаём отдельную таблицу для каждой категории карт
  20. page = requests.get(url_categories)
  21. categories = json.loads(page.text)['_aCellValues']
  22. for category_name in categories:
  23.     name = category_name['_sName'].replace('\n','').replace('/','_').replace(' ','_').replace('&','and')
  24.     cursor.execute("CREATE TABLE "+name+" (name TEXT, id INT, url TEXT)")
  25.  
  26. #Постранично парсим названия и id всех карт
  27. page_number = 1
  28. url = url_maps
  29. page = requests.get(url)
  30. maps = json.loads(page.text)['_aCellValues']
  31. while maps != []:
  32.     for map_ in maps:
  33.         #Получаем информацию о карте
  34.         map_url = map_['_sProfileUrl'].replace('\\/','/')
  35.         map_id = str(map_['_idItemRow'])
  36.         map_name = map_['_sName'].replace("'",'')
  37.         map_category = map_['_aSuperCategory']['_sName']
  38.  
  39.         download_url = requests.get(url_info+map_id).text[27:33]
  40.         print(download_url)
  41.         input()
  42.  
  43.         #Записываем в таблицу категории и общую таблицу
  44.         cursor.execute("INSERT INTO "+map_category+" VALUES ('"+map_name+"', "+map_id+", '"+map_url+"'')")
  45.         cursor.execute("INSERT INTO all_maps VALUES ('"+map_name+"', "+map_id+", '"+map_url+"', '"+map_category+"'')")
  46.  
  47.  
  48.     conn.commit() #Сохраняем изменения
  49.  
  50.     page_number += 1
  51.     url = url_maps_page + str(page_number)
  52.     page = requests.get(url)
  53.     maps = json.loads(page.text)['_aCellValues']
  54.    
  55.    
  56.  
  57. conn.close() #Закрываем базу данных
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Top