我获得了一个HTML网址,我需要根据不同的标记和属性值从中选择多个元素。我需要使用lxml作为我的作业的一部分。
我对BeautifulSoup
非常流利。
在beautifulsoup中,为了达到同样的目的,我们可以使用
k = soup.findAll('tagname')
此处soup
是
<someRandomTag>...</someRandomTag>
<someTag>
<tagName>entry 1</tagName>
<tagName>entry 2</tagName>
<tagName>entry 3</tagName>
<tagName>entry 4</tagName>
</someTag>
这里所有带有'tagname'标签的条目都作为列表返回给k。 lxml
中是否有相同的内容?
我知道Xpath
,例如tags=doc.xpath('descendant::*[@attrib1="atrtribval"]')
。
但我想知道还有其他方法吗?
答案 0 :(得分:1)
另外findall
:
In [645]: t='''
...: <someTag>
...: <tagName>entry 1</tagName>
...: <tagName>entry 2</tagName>
...: <tagName>entry 3</tagName>
...: <tagName>entry 4</tagName>
...: </someTag>
...: '''
In [646]: etree.fromstring(t)
Out[646]: <Element someTag at 0x11ff3918>
In [647]: stag=etree.fromstring(t)
In [648]: stag.findall('tagName')
Out[648]:
[<Element tagName at 0x11ff38a0>,
<Element tagName at 0x11ff3f80>,
<Element tagName at 0x11ff3ad0>,
<Element tagName at 0x11ff3da0>]