@66656665
22 года

Сделал парсер, выдает None?

Сделал парсер, выдает None. Предполагаю, что это из за огромного количества джаваскрипта на сайте.
Необходимо спарсить фотографию. Цену и название спарсить удается, а вот при попытке спарсить src фото, выдает None.
Справится ли тут один BS, или надо использовать Selenium? Буду очень благодарен :)
P.S. Это мой первый парсер.

Код:

import requests
from bs4 import BeautifulSoup

HOST = "https://irr.ru/cars/passenger/"
URL = "https://irr.ru/cars/passenger/lexus/"
HEADERS = {
    'user-agent': 'tyt user-agent',
    'accept': 'tyt accept'   
    }

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


def get_content(html):
    soup = BeautifulSoup(html, 'html.parser')
    items = soup.find_all('div', class_='listing__item')
    wgg = []

    for item in items:
        wgg.append(

            {
                'title':item.find('div', class_='listing__itemInner').find('div', class_='listing__itemColumn listing__itemColumn_main').find('div', class_='listing__itemTitleWrapper').find('a', class_='listing__itemTitle').find('div', class_='js-productListingProductName').get_text(),
                'link':item.find('div', class_='listing__itemInner').find('div', class_='listing__itemColumn listing__itemColumn_main').find('div', class_='listing__itemTitleWrapper').find('a').get('href'),
                'foto':item.find('div', class_='listing__itemInner').find('div', class_='listing__itemColumn').find('div', class_='listing__imageWrapper').find('img',).get('src') ,
                'cena':item.find('div', class_='listing__itemInner').find('div', class_='listing__itemColumn listing__itemColumn_price').find('div', class_='listing__itemPrice').get_text(),
              
            }

        )

    return wgg


html = get_html(URL)

print(get_content(html.text))


Вот, что получается:

[{'title': 'Lexus LX 570', 'link': 'https://irr.ru/cars/passenger/used/lexus-lx-570-vn...', 'foto': None, 'cena': '\n \t 2\xa0345\xa0000\xa0руб.\n \t '}, {'title': 'Lexus GX 470', 'link': 'https://irr.ru/cars/passenger/used/lexus-gx-470-vn...', 'foto': None, 'cena': '\n \t 1\xa0200\xa0000\xa0руб.\n \t '}, {'title': 'Lexus RX 270', 'link': 'https://irr.ru/cars/passenger/used/lexus-rx-270-vn...', 'foto': None, 'cena': '\n \t 1\xa0320\xa0000\xa0руб.\n \t '}, {'title': 'Lexus GS 250', 'link': 'https://irr.ru/cars/passenger/used/lexus-gs-250-se...', 'foto': None, 'cena': '\n \t 1\xa0500\xa0000\xa0руб.\n \t '}, {'title': 'Lexus LX 570', 'link': 'https://irr.ru/cars/passenger/used/lexus-lx-570-vn...', 'foto': None, 'cena': '\n \t 1\xa0839\xa0999\xa0руб.\n \t '}, {'title': 'Lexus RX 350', 'link': 'https://irr.ru/cars/passenger/used/lexus-rx-350-vn...', 'foto': None, 'cena': '\n \t 845\xa0000\xa0руб.\n \t '}, {'title': 'Lexus LS 460', 'link': 'https://irr.ru/cars/passenger/used/lexus-ls-460-se...', 'foto': None, 'cena': '\n \t 1\xa0400\xa0000\xa0руб.\n \t '}, {'title': 'Lexus LX', 'link': 'https://irr.ru/cars/passenger/used/lexus-lx-limuzi...', 'foto': None, 'cena': '\n \t 3\xa0900\xa0000\xa0руб.\n \t '}, {'title': 'Lexus LX 570', 'link': 'https://irr.ru/cars/passenger/used/lexus-lx-570-vn...', 'foto': None, 'cena': '\n \t 3\xa0400\xa0000\xa0руб.\n \t '}]
  • Вопрос задан
  • 204 просмотра
Решения вопроса 1
datka
@datka
'foto':item.find('img', class_='listing__image')["data-src"]
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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