AttributeError: 'NoneType' object has no attribute 'find' beautifulsoup
столкнулся с ошибкой при получении данных с сайта при помощи модуля реквестс
вот что я получаю в переменной 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()
Источник: Stack Overflow на русском