我已经在python中编写了一些选择器来获取一些项目及其价值。我希望刮掉不要造型的物品。但是,当我运行我的脚本时,它只获取项目,但无法达到由" br"分隔的项目的值。标签。我该怎么抓住它们?我没有在这种情况下使用xpath来达到目的。提前谢谢。
以下是要素:
html = '''
<div class="elems"><br>
<ul>
<li><b>Item Name:</b><br>
titan
</li>
<li><b>Item No:</b><br>
23003400
</li>
<li><b>Item Sl:</b><br>
2760400
</li>
</ul>
</div>
'''
这是我的脚本中包含css选择器:
from lxml import html as e
root = e.fromstring(html)
for items in root.cssselect(".elems li"):
item = items.cssselect("b")[0].text_content()
print(item)
执行后,结果我有:
Item Name:
Item No:
Item Sl:
我之后的结果:
Item Name: titan
Item No: 23003400
Item Sl: 2760400
答案 0 :(得分:0)
通常我使用.itertext
方法来提取文本:
from lxml.html import fromstring
def extract_text(el, sep=' '):
return sep.join(s.strip() for s in li.itertext() if s.strip())
tree = fromstring(html)
for li in tree.cssselect('.elems li'):
print(extract_text(li))
答案 1 :(得分:0)
最简单的解决方案。值在“li”标签内而不是“b”。
from lxml import html as e
root = e.fromstring(html)
for items in root.cssselect(".elems"):
item = [item.text_content() for item in items.cssselect("li")]
print(''.join(item))