如何刮掉多个现有元素/ beautifulsoup / python的第一个元素

时间:2018-03-06 17:16:54

标签: python beautifulsoup

我尝试抓取HTML代码的ID元素。它存在两次,每次我打印它,我得到它两次。这就是我抓住它的方式:

for review in soup.find_all("div", {"class": "reviewContainer"}):
    for review2 in review.findAll(True, {'id':True}):
        if len(review2) > 0:
            userid = review2['id']
            print(userid)
        else:
            userid = "N/A"
            print(userid)

输出:

ID_123  
ID_123  
ID_456  
ID_456  

我试图添加“review2 ['id']。next_element”来获取第一个即将到来的元素,但是我收到错误。是否有一个解决方案,我如何获得第一个找到的元素,而不是两次得到它?

1 个答案:

答案 0 :(得分:0)

尝试添加条件检查以查看您之前是否已找到该用户ID:

    for review in soup.find_all("div", {"class": "reviewContainer"}):
        userid_found = []
        for review2 in review.findAll(True, {'id':True}):
            if len(review2) > 0:
                userid = review2['id']
                if userid not in userid_found:
                    userid_found.append(userid)
                    print(userid)
            else:
                userid = "N/A"
                print(userid)