美丽的汤错误' NoneType'对象和如果

时间:2017-05-31 16:47:54

标签: python python-2.7 beautifulsoup

我有无元素的问题,我补充说,为了测试这个,但它仍然不起作用:

Set-CalendarProcessing -Identity "Meeting Room Name" -BookingWindowInDays "1080"

错误:

soup = BeautifulSoup(htmlpage, "lxml")
element = soup.find(None, "div", class_='12345').find('a')

if element is not None:
    print "Your element is: " + element.text

else:
    print "No element"    

1 个答案:

答案 0 :(得分:1)

您正在执行两次查找呼叫:

element = soup.find(None, "div", class_='12345').find('a')

第一次调用失败,失败是因为您在那里查找错误的内容,您正在传递None作为标记名,"div"作为属性映射。它永远不会工作,因此总是返回None,并且该对象没有.find属性。

您需要修复呼叫,并在尝试查找嵌套div标记之前测试是否找到了a

element = None
parent = soup.find("div", class_='12345')
if parent is not None:
    element = parent.find('a')

我不会那么复杂,但我使用CSS selector代替soup.select_one()方法:

element = soup.select_one('div.12345 a')
if element is not None:
    # ...

CSS选择器将返回第一个a元素,该元素是具有类div的{​​{1}}标记的子元素。