BeautifulSoup发现()找不到任何东西

时间:2016-06-15 18:22:00

标签: python python-2.7 beautifulsoup

这是一个复制我遇到的问题的例子:

from bs4 import BeautifulSoup
import re

soup = BeautifulSoup('<root><td><label for="pol_nbr">Policy number<br></label></td></root>', 'html.parser')
anchor = soup.find('label', text=re.compile('Policy number'))

但是anchor没有。为什么它不是label标签?

1 个答案:

答案 0 :(得分:1)

问题是<br>标记,如果删除它,代码可以正常运行:

In [39]: soup = BeautifulSoup('<root><td><label for="pol_nbr">Policy number</label></td></root>', 'html.parser')

In [40]: soup.find('label', text=re.compile('Policy number'))
Out[40]: <label for="pol_nbr">Policy number</label>

更可靠的方法是使用for属性值进行选择:

soup.select_one("root label[for=pol_nbr]")