@Kwyro

Почему выводится пустой список в парсере?

У меня не работает парсер, выводит пустой список. Возможно, я понимаю в чём проблема, проблема в том что r.text выводит head и JavaScript, но я не знаю как это исправить, помогите пожалуйста
from bs4 import BeautifulSoup as bs
import requests
import lxml
import csv
from fake_useragent import UserAgent

ua = UserAgent()
URL = "https://www.dns-shop.ru/catalog/17a8a01d16404e77/smartfony/"
header = {'User-Agent': ua.random} #ua

def get_html(url, params=''):
  r = requests.get(url, headers=header, params=params)
  return r

def get_content(html):
  soup = bs(html.text, 'lxml')
  items = soup.find_all('div', class_="catalog-product")
  phone = []
  for item in items:
    phone.append({
        'info': item.find('a', class_="catalog-product__name").text
    })
  return phone

def parser():
    html = get_html(URL)
    print(get_content(html))


if __name__ == '__main__':
    parser()
  • Вопрос задан
  • 123 просмотра
Решения вопроса 1
AlexNest
@AlexNest
Работаю с Python/Django
Сейчас многие сайты подгружают контент с помощью JS, который работает только в браузере.
Такие сайты парсятся с помощью Selenium.
К тому-же, сайты вроде DNS очень не любят когда их парсят и вероятно, одного юзерагента недостаточно.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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