Levman5
@Levman5
print(“Hello World!”)

Почему пустой вывод при парсинге на python?

У меня есть простой парсер:
import requests
from bs4 import BeautifulSoup

URL = 'https://www.dns-shop.ru/search/?q=%D0%BA%D0%BE%D0%BD%D1%81%D0%BE%D0%BB%D0%B8&stock=soft'
HEADERS = {
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.61 Safari/537.36',
    'accept': '*/*'
}

def get_html(url, params=None):
    r = requests.get(url, params=params, headers=HEADERS)
    return r
def parse():
    html = get_html(URL)
    soup = BeautifulSoup(html.text, 'html.parser')
    items = soup.find_all('div', class_='catalog-product')
    print(items)

parse()


Но он выводит [ ]

Где я накосячил?
  • Вопрос задан
  • 342 просмотра
Пригласить эксперта
Ответы на вопрос 2
@alexbprofit
Junior SE
Контент генерится js'ом используй Selenium или ищи тот запрос который браузер шлет на сервер и повторяй его
Ответ написан
origami1024
@origami1024
went out for a night walk
В хедерах нужно выставить сгенерированные скриптом куки.
Если заходишь без кук, то сервер по любому адресу отдает страничку со скриптом генерации кук.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы