use*_*767 3 python beautifulsoup
这是我正在使用Beautiful Soup探索的HTML文件的片段.
<td width="50%">
<strong class="sans"><a href="http:/website">Site</a></strong> <br />
Run Code Online (Sandbox Code Playgroud)
我想得到<a href>
任何有哪个<strong class="sans">
和哪个在里面的行<td width="50%">
.
是否可以使用Beautiful Soup查询HTML文件中的多个条件?
Jar*_*die 11
BeautifulSoup的搜索机制接受一个可调用的文档,文档似乎为您的案例推荐:"如果您需要对标记的属性强加复杂或互锁限制,请传入一个可调用对象的名称,......".(好吧......他们专门讨论属性,但这些建议反映了BeautifulSoup API的基本精神).
如果你想要一个单行:
soup.findAll(lambda tag: tag.name == 'a' and \
tag.findParent('strong', 'sans') and \
tag.findParent('strong', 'sans').findParent('td', attrs={'width':'50%'}))
Run Code Online (Sandbox Code Playgroud)
我在这个例子中使用了lambda,但实际上你可能想要定义一个可调用的函数,如果你有多个链式的需求,因为这个lambda必须进行两次findParent('strong', 'sans')
调用,以避免在<a>
标签没有strong
父项时引发异常.使用适当的功能,您可以提高测试效率.
归档时间: |
|
查看次数: |
4427 次 |
最近记录: |