Когда парсю сайт, не на всех страницах есть теги которые нужно спарсить и из за этого возвращает тип None из за которого данные не добавить в Excel

main.py

from bs4 import BeautifulSoup


headers = {
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) \
        Chrome/106.0.0.0 YaBrowser/22.11.0.2419 Yowser/2.5 Safari/537.36'}


def get_url():

    for count in range(0, 2):

        url = f'https://fabricators.ru/zavody?page={count}'
        response = requests.get(url)
        soup = BeautifulSoup(response.text, "html.parser")
        data = soup.find_all("div", class_="content-list-item enterprise-teaser")

        for items in data:
            href_url = "https://fabricators.ru/" + items.find("a").get("href")
            yield href_url


def array():
    for zavody_url in get_url():
        # Делаем запрос к списку заводов
        response = requests.get(zavody_url)
        # Парсим
        soup = BeautifulSoup(response.text, "html.parser")

        # Парсим название предприятия
        name = soup.find("h1", class_="col-wt").text

        # Парсим категорию предприятия

        category = soup.find("ul", class_="bread-crumbs").findNext("a").findNext("a").findNext("a").text
        # Парсим категорию предприятия
        category_2 = soup.find("ul", class_="bread-crumbs").findNext("a").findNext("a").findNext("a").findNext("a").text

        # Парсим описание
        description = soup.find("div", class_="about-project").text
        # Парсим продукты

        # Парсим реквизиты
        entity_name = soup.find("div", class_="content-contact-list")\
            .find("div", class_="content-contact-item__block").text

        # Парсим ИНН
        inn = soup.find("div", class_="content-contact-item").find_next("div", class_="content-contact-item") \
            .find("div", class_="content-contact-item__block").text

        # Парсим ОГРН
        ogrn = soup.find("div", class_="content-contact-item").find_next("div", class_="content-contact-item") \
            .find_next("div", class_="content-contact-item").find("div", class_="content-contact-item__block").text

        # Парсим контакты
        # Парсим местонахождение
        locality = soup.find("div", class_="content-contact-item__block")\
            .find_next("div", class_="content-contact-item__block")\
            .find_next("div", class_="content-contact-item__block")\
            .find_next("div", class_="content-contact-item__block")\
            .find_next("div", class_="content-contact-item__block")\
            .text

        # Парсим Регион
        region = soup.find("div", class_="content-contact-item__block")\
            .find_next("div", class_="content-contact-item__block")\
            .find_next("div", class_="content-contact-item__block")\
            .find_next("div", class_="content-contact-item__block").text.replace("\n", "")

        # Парсим номер телефона
        phone = soup.find("div", class_="content-contact-item__block")\
            .find_next("div", class_="content-contact-item__block")\
            .find_next("div", class_="content-contact-item__block")\
            .find_next("div", class_="content-contact-item__block")\
            .find_next("div", class_="content-contact-item__block")\
            .find_next("div", class_="content-contact-item__block").string

        # Парсим веб сайт
        website = soup.find("div", class_="content-contact")\
            .find("div", class_="field field-name-field-site field-type-link-field field-label-hidden").find("a")

        yield category, category_2, name, description, entity_name, inn, ogrn, locality, region, phone, website```

Второй файл xl.py

```import xlsxwriter
from main import array


def writer(parametr):
    book = xlsxwriter.Workbook(r'C:\Users\user\PycharmProject\PCinform\data.xlsx')
    page = book.add_worksheet('Data')

    row = 0
    column = 0

    page.set_column("A:A", 50)
    page.set_column("B:B", 50)
    page.set_column("C:C", 50)
    page.set_column("D:D", 450)
    page.set_column("E:E", 100)
    page.set_column("F:F", 50)
    page.set_column("G:G", 50)
    page.set_column("H:H", 50)
    page.set_column("I:I", 150)
    page.set_column("J:J", 50)
    page.set_column("K:K", 50)
    page.set_column("L:L", 50)
    page.set_column("M:M", 50)

    for item in parametr():

        page.write(row, column, item[0])
        page.write(row, column+1, item[1])
        page.write(row, column+2, item[2])
        page.write(row, column+3, item[3])
        page.write(row, column+4, item[4])
        page.write(row, column+5, item[5])
        page.write(row, column+6, item[6])
        page.write(row, column+7, item[7])
        page.write(row, column+8, item[8])
        page.write(row, column+9, item[9])
        page.write(row, column+10, item[10])

        row += 1

    book.close()


writer(array)

Код ошибки

```Traceback (most recent call last):
  File "C:\Users\user\PycharmProject\PCinform\xl.py", line 45, in <module>
    writer(array)
  File "C:\Users\user\PycharmProject\PCinform\xl.py", line 26, in writer
    for item in parametr():
  File "C:\Users\user\PycharmProject\PCinform\main.py", line 80, in array
    website = soup.find("div", class_="content-contact")\
AttributeError: 'NoneType' object has no attribute 'find'```

Ответы (1 шт):

Автор решения: Сергей Ш
import requests
import xlsxwriter
from bs4 import BeautifulSoup


def get_url():
    for count in range(2):
        url = f'https://fabricators.ru/zavody?page={count}'
        response = requests.get(url)
        soup = BeautifulSoup(response.text, "html.parser")
        data = soup.find_all("a", class_="title-site--h3")
        for items in data:
            yield "https://fabricators.ru/" + items.get("href")


def array():
    for zavody_url in get_url():
        # Делаем запрос к списку заводов
        response = requests.get(zavody_url)
        # Парсим
        soup = BeautifulSoup(response.text, "html.parser")
        # Парсим название предприятия
        name = soup.find("h1", class_="col-wt").text
        # Парсим категорию предприятия
        *_, category, category_2, _ = soup.find("ul", class_="bread-crumbs").stripped_strings
        # Парсим описание
        description = soup.find("div", class_="about-project").text.strip()
        # Парсим продукты

        # Парсим реквизиты
        entity_name, inn, ogrn, locality, region, phone, \
        *_ = (x.text.strip() for x in soup.findAll("div", class_="content-contact-item__block"))
        website = ''
        if z := soup.find(attrs={"class": "field-item"}).find("a"):
            website = z.get('href').split('?')[0]

        yield category, category_2, name, description, entity_name, inn, ogrn, locality, region, phone, website


def writer(parametr):
    book = xlsxwriter.Workbook(r'data.xlsx')
    page = book.add_worksheet('Data')

    row = 0
    column = 0
    for x in 'ABCFGJHJKLM':
        page.set_column(f"{x}:{x}", 50)

    page.set_column("D:D", 450)
    page.set_column("E:E", 100)
    page.set_column("I:I", 150)

    for item in parametr():
        for x in range(11):
            page.write(row, column + x, item[x])

        row += 1

    book.close()


writer(array)
→ Ссылка