Всем привет! Пробую написать парсер для телеграм. На этом этапе что-то пошло не так. Пишет: AttributeError: 'NoneType' object has no attribute 'text'

shevie

Новичок
Пользователь
Мар 12, 2022
6
0
1
Python:
import requests
from bs4 import BeautifulSoup


def get_excursions():
    headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36 OPR/84.0.4316.36"
    }

    url = "https://victorymuseum.ru/excursions/"
    r = requests.get(url=url, headers=headers)

    soup = BeautifulSoup(r.text, "lxml")
    imgs_box = soup.find_all("div", class_="item")

    for article in imgs_box:
        article_title = article.find("div", class_="text").text.strip()
        article_url = f'https://victorymuseum.ru/{article.find("href")}'
        article_time = article.find("b").text.strip()

        print(f"{article_title} | {article_url} | {article_time}")


get_excursions()



И пишет: 'NoneType' object has no attribute 'text'​

 
Последнее редактирование:

shevie

Новичок
Пользователь
Мар 12, 2022
6
0
1
изображение_2022-03-12_140515.png
 
Последнее редактирование:

Vershitel_sudeb

Vershitel sudeb
Команда форума
Модератор
Мар 17, 2021
973
220
43
21
Москва
Вставь пожалуйста код как код:
1642352516038-png.1549
 

Selez

Новичок
Пользователь
Мар 11, 2022
11
3
3
Думаю проблема в том, что поиск производится только в объекте soup, в imgs_box уже находятся не объекты и соответственно у них нет атрибута text. Попробуй произвести поиск без перевода в .text и распечатать результат, возможно там пустая строка.
 

shevie

Новичок
Пользователь
Мар 12, 2022
6
0
1
Думаю проблема в том, что поиск производится только в объекте soup, в imgs_box уже находятся не объекты и соответственно у них нет атрибута text. Попробуй произвести поиск без перевода в .text и распечатать результат, возможно там пустая строка.
изображение_2022-03-12_140149.png
Так?
 

Selez

Новичок
Пользователь
Мар 11, 2022
11
3
3
Ну почти, тебе надо более точно составить поисковый запрос т.к. на странице много элементов с классом item, попробуй следующее:

Python:
imgs_box = soup.find_all("div", {"class": "item", "data-id": 2})
 

shevie

Новичок
Пользователь
Мар 12, 2022
6
0
1
Ну почти, тебе надо более точно составить поисковый запрос т.к. на странице много элементов с классом item, попробуй следующее:

Python:
imgs_box = soup.find_all("div", {"class": "item", "data-id": 2})
Спасибо, помогло! Теперь при выводе, в ссылке на сайт, пишет none. Как исправить, чтобы при выводе выводило правильное продолжение домена, а не None. Спасибо!изображение_2022-03-12_222938.png
 
Последнее редактирование:

Selez

Новичок
Пользователь
Мар 11, 2022
11
3
3
Спасибо, помогло! Теперь при выводе, в ссылке на сайт, пишет none. Как исправить, чтобы при выводе выводило правильное продолжение домена, а не None. Спасибо!Посмотреть вложение 1698
Попробуй вот так:
Python:
article_url = f'https://victorymuseum.ru/{article.find("a", class_="img-box").get("href")}'
 

shevie

Новичок
Пользователь
Мар 12, 2022
6
0
1
Спасибо, помогло! Теперь при выводе, в ссылке на сайт, пишет none. Как исправить, чтобы при выводе выводило правильное продолжение домена, а не None. Спасибо!Посмотреть вложение 1698
Уже сам исправил, спасибо вам огромное за помощь!
 

shevie

Новичок
Пользователь
Мар 12, 2022
6
0
1
Попробуй вот так:
Python:
article_url = f'https://victorymuseum.ru/{article.find("a", class_="img-box").get("href")}'
А, не увидел ваше сообщение, все равно спасибо вам!
 

Форум IT Специалистов