查找HTML响应中是否存在某些标签,并相应地打印if / else

时间:2018-10-19 11:03:14

标签: python html web-scraping beautifulsoup python-requests

我正在尝试从网站收集数据(使用Python)。在webpage中,有多个软件清单,每个清单中都有。我的数据在标签(h5)和特定类('price_software_details)中。

但是,在某些情况下,缺少标记以及数据。如果数据和标签丢失,我想打印“ NA”消息,否则它将打印数据。

我尝试了下面提到的代码,尽管它不起作用。 请帮忙!


interest = soup.find(id = 'allsoftware')
for link in interest.findAll('h5'):
    if link.find(class_ = 'price_software_details') == True:
        print(link.getText())
    else:
        print('NA')

2 个答案:

答案 0 :(得分:0)

您是否尝试过错误处理(尝试,除外)?

interest = soup.find(id='allsoftware')
for link in interest.findAll('h5'):
    try: 
        item = link.find({'class':'price_software_details'})
        print(item.get_text())
    except:
        print('NA')

答案 1 :(得分:0)

您需要知道soup.find()永远不会是True。它只会是结果或None

interest = soup.find(id = 'allsoftware')
for link in interest.findAll('h5'):
    if link.find(class_ = 'price_software_details'):
        print(link.getText())
    else:
        print('NA')