Задать вопрос
@twopercent

Каким запросом подгружается информация?

Есть страничка товара с блоком Характеристики. Блок разворачивается полностью при нажатии "Развернуть описание". По определенным причинам парсить Селениумом мне не подходит. Хотелось бы разобраться по какому запросу браузер получает развернутые характеристики. На других форумах нашел библиотеку Requests-HTML, но в документации не увидел нужного инструмента.

Вот ссылка на страничку
  • Вопрос задан
  • 142 просмотра
Подписаться 1 Средний Комментировать
Помогут разобраться в теме Все курсы
  • Stepik
    Парсинг на Python для начинающих
    2 недели
    Далее
  • Skillfactory
    Профессия Python-разработчик PRO
    12 месяцев
    Далее
  • Хекслет
    Фронтенд-разработчик
    10 месяцев
    Далее
Решения вопроса 1
@alexalexes
Данные прикладываются в первоначальное состояние html.
В конце страницы есть тег script. Там определяется глобальный объект __NUXT__.
В нем есть свойство data, в нулевом элементе лежат данные, необходимые для интерактива.
Среди них есть то, что вы ищите:
window.__NUXT__.data[0].product.props
Чтобы забрать значение __NUXT__ нужно выполнить JS этого тега.
Но можно решить задачу влоб при помощи регулярки, получив содержимое между return и последней закрывающийся фигурной скобкой функции, формирующей этот объект:
(?<=window\.__NUXT__=\(function\(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,_,\$,aa,ab,ac,ad,ae,af\){return\s).*(?=}\()

Данная регулярка получит JSON, который можно превратить в объект без выполнения JS.
Но данный метод будет работать до тех пор, пока разработчики магазина не добавят новых аргументов в эту функцию. Либо эта функция будет иметь переменное кол-во аргументов.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
iMedved2009
@iMedved2009
Не люблю людей
Ни по какому запросу - там уже в json лежат данные

Скриншоты кода запрещены. Удалено модератором.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы