AttributeError: 'NoneType' object has no attribute 'find' beautifulsoup

Рейтинг: 0Ответов: 0Опубликовано: 29.03.2023

столкнулся с ошибкой при получении данных с сайта при помощи модуля реквестс введите сюда описание изображения

вот что я получаю в переменной soup (20 строка)

послу чего происходит ошибка

Traceback (most recent call last):
  File "/Users/blobizer/Desktop/code/python/parser-telegrambot/parser.py", line 52, in <module>
    parse()
  File "/Users/blobizer/Desktop/code/python/parser-telegrambot/parser.py", line 25, in parse
    link = soup.find("div", class_="catalog-results").find(class_="row no-gutters gutters10").find(class_="col-lg-3 col-md-3 col-sm-6 col-6").find('a').get("href")
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'find'

Но все данные есть и почему происходит ошибка понять не могу, если парсить с файла то все хорошо никаких проблем нету

весь код

from bs4 import BeautifulSoup
import os
import requests
from config  import  message_thread
import logging


url = "https://tutsakh.com/sahalinskaya-oblast?filter[sort]=news"






def parse():

    result = requests.get(url)
    result = result.content

    soup = BeautifulSoup(result, "lxml")




    link = soup.find("div", class_="catalog-results").find(class_="row no-gutters gutters10").find(class_="col-lg-3 col-md-3 col-sm-6 col-6").find('a').get("href")
    name = soup.find("div", class_="catalog-results").find(class_="row no-gutters gutters10").find(class_="col-lg-3 col-md-3 col-sm-6 col-6").find('a').get("title")
    try:
        image = soup.find("div", class_="catalog-results").find(class_="row no-gutters gutters10").find(class_="col-lg-3 col-md-3 col-sm-6 col-6").find('img').get("data-src")
    except:
        pass
    price = soup.find("div", class_="catalog-results").find(class_="row no-gutters gutters10").find(class_="col-lg-3 col-md-3 col-sm-6 col-6").find(class_="item-grid-price-now").text

    result = requests.get(link)
    result = result.content

    strap = BeautifulSoup(result, "lxml")

    category_name = strap.find("div",  class_="col-lg-9").find("div", class_="d-block d-lg-none").find("ol", class_="breadcrumb mt15").find_all("li", class_="breadcrumb-item")

    f = open(os.path.join('images', '00000001.jpg'), 'wb')
    f.write(requests.get(image).content)
    f.close()

    print(f"{name} \n {category_name[1].text}\n {price} \n {link}")

    ids = 1
    if category_name[2] == "Услуги" or category_name[2] == "Для Бизнеса" or category_name[2] == "Животные":
        ids = 2

    return name, category_name[ids].text, price, link

parse()

Ответы

Ответов пока нет.