@DeadOutside000

Почему не парсится Wildberries beautifulsoup4?

import requests
from bs4 import BeautifulSoup


URL = 'https://www.wildberries.ru/catalog/0/search.aspx?sort=popular&search=%D1%82%D0%B5%D0%BB%D0%B5%D1%84%D0%BE%D0%BD'

header = {'Accept': "*/*", 'User-Agent': "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.3.3029.62 LiteBrowser/58.3.3029.62 MRCHROME SOC Safari/537.36"}
html = requests.get(URL, headers=header)
print(html.status_code) #200
soup = BeautifulSoup(html.text, 'lxml')

imgs = soup.find_all('img', class_='j-thumbnail thumbnail')
print(imgs) # []


Не могу собрать карточки с вайлдберрис. Все что берется с сайта - это лого вб, все что ниже дает None или []. Я совсем зеленый в теме парсинга, и буду рад, если просвятите меня в чем поблема.
  • Вопрос задан
  • 497 просмотров
Пригласить эксперта
Ответы на вопрос 2
@rPman
потому что содержимое формируется в браузере на javascript
открой браузер, нажми f12, закладка networks и походи по сайту, изучай запросы (там можно делать поиск по содержимому, можно сохранить дамп в .har json дамп), возможно сумеешь отреверсить их логику, но учти, компания борется с этим процессом и просто не будет

многие плюют на это и используют реальный браузер и любой механизм его автоматизации, например selenium или инжект своих скриптов в страницы каким-нибудь плагином типа tempermonkey и симуляция действий пользователя
Ответ написан
Комментировать
@dima20155
you don't choose c++. It chooses you
Контент этого сайта не статический и изменяется посредством исполнения скриптов, соответственно, тебе нужно получить веб страницу, на которой эти скрипты уже отработали (bs4 в твоем случае скачивает html страницу до того как скрипты отработали).
Можно использовать Selenium , Pyppeteer , Playwright и Web Scraping API
Возможно, есть другие способы.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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