Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 15, 2021 12:39:29

romantic1795
Зарегистрирован: 2021-12-15
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Парсинг BS, requests

Здравствуйте. Помогите пожалуйста решить вопрос.
При парсинге сайтов с доменом “ru” выдает пустой список…
При отладке soup отображает структуру сайта, наполненную разными символами(цифрами и англ буквами), возможно проблема с кодировкой. Если в URL вставить сайт с доменом “com” отображает нормальную структуру и парсер работает исправно.
В чем может быть проблема?
Заранее благодарю.
Ниже код:

 import requests
from bs4 import BeautifulSoup
 
 
URL = 'https://www.dns-shop.ru/actions/'
HEADERS = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; …) Gecko/20100101 Firefox/70.0', 'accept': '*/*'}
 
 
def get_html(url, params=None):
    r = requests.get(url, headers=HEADERS, params=params)  # GET запрос на сайт
    return r
 
 
 
def get_content(html):  # преобразование кода страницы
    soup = BeautifulSoup(html, 'lxml')
    items = soup.find_all('div', class_='action-card__texts')  # выдает пустым списком в том числе и items
    inf = []
    for item in items:
        inf.append({
            'Заголовок': item.find('a', class_='action-card__title').get_text()
        })
    print(inf)
 
 
 
def parse():
    html = get_html(URL)
    if html.status_code == 200:
        get_content(html.text)
    else:
        print('Ошибка соединения')
parse()

Отредактировано romantic1795 (Дек. 15, 2021 15:09:50)

Офлайн

#2 Дек. 15, 2021 14:57:28

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9874
Репутация: +  854  -
Профиль   Отправить e-mail  

Парсинг BS, requests

Помести код в теги

[code python]
сюда код пишешь
[/code]
Иначе отступы пропадают и списки.



Отредактировано py.user.next (Дек. 15, 2021 14:57:57)

Офлайн

#3 Дек. 15, 2021 17:36:01

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9874
Репутация: +  854  -
Профиль   Отправить e-mail  

Парсинг BS, requests

romantic1795
При парсинге сайтов с доменом “ru” выдает пустой список
Ну, нет там “action-card__texts”. Это всё заполяется JavaScript-скриптами прямо в браузере уже после загрузки страницы. Открой страницу и сохрани её на диск, а потом попробуй найти в ней “action-card__texts”.

romantic1795
При отладке soup отображает структуру сайта, наполненную разными символами
Не, ты закачай страницу, которая без браузера скачивается. В браузере-то оно показывает конечный результат, после того как скрипты сработали все.



Офлайн

#4 Дек. 15, 2021 17:54:34

romantic1795
Зарегистрирован: 2021-12-15
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Парсинг BS, requests

py.user.next
Вот спасибо, добрый человек!

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version