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

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

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

Вот ссылка на страничку
  • Вопрос задан
  • 149 просмотров
Подписаться 1 Средний Комментировать
Помогут разобраться в теме Все курсы
  • Stepik
    4в1—Парсинг, Асинхронность, Многопоточность, Многопроцессорность
    2 месяца
    Далее
  • Хекслет
    Фронтенд-разработчик
    10 месяцев
    Далее
  • Stepik
    FullStack Developer and Data Scientist (Python+JS+Data+CookBook)
    4 месяца
    Далее
Решения вопроса 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 лежат данные

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

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

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