Итак, у меня есть несколько проблем, которые я пытаюсь решить.Разбор javascript с использованием re.findall
Сначала я пытаюсь разобрать этот javascript, который я получил из html.
$ (документ) .ready (функция() { $ ('# товарно-шоу-миниатюра') bxSlider ({режим:. 'Вертикальный', авто: ложные, контроли: правда, пейджер: false, minSlides: 4, maxSlides: 4, moveSlides: 1, slideWidth: 250}); itemSelector ('товар-шоу-форма', 'товар-шоу-addcart-submit', [['color', ' Выберите цвет '], [' size ',' Choose size ']], {"39805": { "params": ["Smokey Blue/Mica Blue", "36"]}, "39806": {"params ": [" Smokey Blue/Mica Blue "," 36,5 "]}," 39807 ": {" params ": [" Smokey Blue/Mica Blue "," 37,5 "]}," 39808 " : {"params": ["Smokey Blue/Mica«Синий», «38»]}, «39809»: {«params»: [«Smokey Blue/Mica Blue», «38,5»]}, «39810»: {«params»: [«Smokey Blue/Mica Blue "," 39 "]}, " 39811 ": {" params ": [" Smokey Blue/Mica Blue "," 40 "]}," 39812 ": { " params ": [" Smokey Blue/Mica Blue "," 40,5 "]}," 39814 ": {" params ": [" Smokey Blue/Mica Blue "," 42 "]}}, [39805,39806,39807,39808,39809 , 39810,39811,39812,39814], 'main-cart', 'товар-шоу-образ'); });
res = re.findall(r'{ "params": (.+?)}', text) # text is where javascript text is stored
final = [eval(i) for i in res]
print(final)
я получил следующий вывод
[[ 'Дымчатый синий/Слюда синий', '36'], [ 'Дымчатый синий/Слюда Blue', '36, 5 '], [' Smokey Blue/Mica Blue ', '37, 5'], ['Smokey Blue/Mica Blue', '38'], ['Smokey Blue/Mica Blue', '38, 5 '], [' Smokey Blue/Mica Blue ',' 39 '], [' Smokey Blue/Mica Blue ',' 40 '], [' Smokey Blue/Mica Blue ', '40, 5'], ['Smokey Blue/Mica Blue', '42' ]]
Но теперь я не знаю, как это сделать. Я хочу найти значение this value 39805 от
{"39805": {"params": ["Smokey Blue/Mica Blue", "36"]}. Как бы я разобрал его так, что если бы я искал значение, связанное с 36, это дало бы мне 39805?
Прошу прощения, но я очень плохо разбираюсь в этом, и я довольно новичок в этом.
Похоже, вы действительно хотите результат парсинга быть Dict как '{39805 ':' 36' , '39807': '37', .. .} 'это правильно? – saulspatz
Вы пытаетесь очистить веб-страницу для контента, созданного JavaScript? –
@saulspatz да. Но вместо того, чтобы иметь весь dict, я думаю о разборе для конкретной ценности. Подобно Parse for value 36 и получите его значение, 39805 – b0baboi