我正在写一些HTML处理并且喜欢BS 4. 我确实觉得这有点冗长,希望有更好的方法来处理这个问题.
我很想像这样将我的发现串在一起:
soup.find('li', class_='positions').find('span', class_='list-value').getText()
相反,当第一个查找没有找到任何东西时,它会返回None
,然后下一个查找会像预期的那样失败.
我重写了两行,看起来还可以,但最好在其中有某种?:
条件操作符,就像我在c#中所做的那样.
elem_sup_position = soup.find('li', class_='positions')
sup_position = elem_sup_position.find('span', class_='list-value').getText() if elem_sup_position is not None else ''
我知道我可能可以将它重写成这样,但我讨厌执行第一个查找两次来保存1行代码! 有没有更巧妙的方法来做到这一点? 我有很多这样的.
sup_position = result.find('li', class_='positions').find('span', class_='list-value').getText() if result.find('li', class_='positions') else None