python报废错误AttributeError:' NoneType'对象没有属性' text'

时间:2018-05-20 08:46:10

标签: beautifulsoup scrapy web-crawler mechanize

我正在用美丽的汤做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 :(得分:1)

您可以尝试以下方式完成任务:

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))