Advertisement
Guest User

js.py

a guest
Feb 16th, 2020
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.35 KB | None | 0 0
  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() #Закрываем базу данных
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement