Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import json
- import requests
- import sqlite3
- url_categories = "https://gamebanana.com/maps/games/4660?api=CategoriesListModule" #Страница с категориями карт
- url_maps = "https://gamebanana.com/maps/games/4660?api=SubmissionsListModule" #Страница с картами
- url_maps_page = "https://gamebanana.com/maps/games/4660?api=SubmissionsListModule&mid=SubmissionsList&vl[page]="
- url_info = "https://api.gamebanana.com/Core/Item/Data?itemtype=Map&fields=Files().aFiles()&itemid="
- f = open('data.db', 'w') #Создаём или очищаем файл базы данных
- f.close()
- conn = sqlite3.connect('data.db') #Подключаем базу данных
- cursor = conn.cursor()
- cursor.execute("CREATE TABLE all_maps (name TEXT, id INT, url TEXT, category TEXT)") #Создаём таблицу со всеми картами
- #Создаём отдельную таблицу для каждой категории карт
- page = requests.get(url_categories)
- categories = json.loads(page.text)['_aCellValues']
- for category_name in categories:
- name = category_name['_sName'].replace('\n','').replace('/','_').replace(' ','_').replace('&','and')
- cursor.execute("CREATE TABLE "+name+" (name TEXT, id INT, url TEXT)")
- #Постранично парсим названия и id всех карт
- page_number = 1
- url = url_maps
- page = requests.get(url)
- maps = json.loads(page.text)['_aCellValues']
- while maps != []:
- for map_ in maps:
- #Получаем информацию о карте
- map_url = map_['_sProfileUrl'].replace('\\/','/')
- map_id = str(map_['_idItemRow'])
- map_name = map_['_sName'].replace("'",'')
- map_category = map_['_aSuperCategory']['_sName']
- download_url = requests.get(url_info+map_id).text[27:33]
- print(download_url)
- input()
- #Записываем в таблицу категории и общую таблицу
- cursor.execute("INSERT INTO "+map_category+" VALUES ('"+map_name+"', "+map_id+", '"+map_url+"'')")
- cursor.execute("INSERT INTO all_maps VALUES ('"+map_name+"', "+map_id+", '"+map_url+"', '"+map_category+"'')")
- conn.commit() #Сохраняем изменения
- page_number += 1
- url = url_maps_page + str(page_number)
- page = requests.get(url)
- maps = json.loads(page.text)['_aCellValues']
- conn.close() #Закрываем базу данных
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement