Ошибка удаления Python AttributeError: у объекта 'NoneType' нет атрибута 'text' - PullRequest
0 голосов
/ 20 мая 2018

Я делаю утилиту Python с красивым супом, у сайта, который я сканирую, есть контейнер с заголовком, ссылкой и текстом, 28, текст в теге <p>, моя проблема в том, что я могу сканировать все данные, но некоторые <p> теги не имеют текста, поэтому я получаю сообщение об ошибке "AttributeError: 'NoneType' object has no attribute 'text'" мой код:

containers = page_soup.findAll("div", {"class":"item-container"})


for contain in containers:


    title = contain.div.a.h3.text

    print("title: "+title)

    link = contain.div.a["href"]

    print("source: "+link)

    des = contain.div.p.text

    print("Description: "+des)

он печатает 5 раз <p> текст тега, поскольку не все теги <p> имеют текст, ноэто дает мне ошибку, как решить эту проблему?

1 Ответ

0 голосов
/ 20 мая 2018

Вы можете попробовать, как показано ниже, чтобы выполнить задачу:

for contain in page_soup.find_all("div", {"class":"item-container"}):
    title = contain.div.a.h3.text
    link = contain.div.a["href"]
    try:
        des = contain.div.p.text
    except:
        des = ""
    print("title: {}\nlink: {}\ndescription: {}\n".format(title,link,des))
...