Не могу спарсить элементы со страницы

Есть задача спарсить элементы с этого сайта с помощью языка Python: "https://mannco.trade/", а именно цену и название вот этих вот блоков: введите сюда описание изображения

Все бы ничего, но осмотр HTML кода с ответа данной страницы показал, что этих блоков нет на полученном HTML-коде. У меня есть догадки по поводу того что эти блоки появляются на HTML странице только после некоторого времени присутствия на странице, а когда я получаю ответ с этой страницы это некоторое время не проходит.

Как я могу получить эти блоки, или как я могу задержаться на странице и получить ответ с страницы при появления этих блоков?


Ответы (1 шт):

Автор решения: Jack_oS

Делайте запрос на /api/getBotsInventory:

import json
import requests

url = 'https://mannco.trade/api/getBotsInventory/'
headers = {'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36'}
r = requests.get(url, headers=headers)

Вернется огромный словарь с ключами - именами ботов:

>>> print(r.json().keys())
dict_keys(['Bot 1', 'Bot 2', 'Bot 3', 'Bot 4', 'Bot 5', 'Bot 6', 'Bot 7', 'Bot 8', 'Bot 9', 'Bot 10', 'Bot 11', 'Bot 12', 'Bot 13', 'Bot 14', 'Bot 15', 'Bot 16', 'Bot 17', 'Bot 18', 'Bot 19', 'Bot 20', 'Bot 21', 'Bot 22', 'Bot 23', 'Bot 24'])

в каждом из которых - словари с именами assetId:

>>> print(r.json()['Bot 1']['response'].keys())
dict_keys(['9353432271', '9452943840', '9353432825', '9373904423', '9623641942', '9396995813', '9376141996', '9362707242', '9354716108', '9378045567', '9393835902', '9396999817', '9393835861', '9396995964', '9405464871', '9434834455', '9501641479', '9502295157', '9559827940', '9569240979', '9585519088', '9586939121', '9590049879', '9594264468', '9596351014', '9602194288', '9631653865', '9634136105',

Пример одного из них, содержащий и цену, и название, и ссылку на изображение, и еще много всего интересного ;)

>>> print(r.json()['Bot 1']['response']['9353432271'])
{
    'assetId': '9353432271', 
    'price': '0.62', 
    'typeitem': 'misc', 
    'idterm': 0, 
    'cc': 'etrange', 
    'uncraft': 0, 
    'namemax': 'defaultStrange Part: Robot Scouts Destroyed', 
    'idu': 0, 
    'effect': 'default', 
    'name': 'Strange Part: Robot Scouts Destroyed', 
    'type': 'Level 1 Strange Part', 
    'ca': '', 
    'spell': '', 
    'img': 'https://steamcommunity-a.akamaihd.net/economy/image/fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEYeBUQUxznhyhCmtzZH_2OB_Q_iNk68IRG5j1inQ1-MNy5MSVgd0rAV_VYBPM58A29XXBqucI0VYGypeNSLATutdeVYuMrYd5OTJaGXPCCeEmjvYYcR0RE'
}

UPD Осторожно, в r.json() большой объем данных:

count = 0
for k, v in r.json().items():
    for id in v['response'].keys():
        print(id)
        count += 1

print(count)
25844
→ Ссылка