itertext元素的方法返回节点文本数据的迭代器。对于您的
<a>标记,
'Detroit'将是迭代器返回的第二个值。如果文档的结构始终符合已知规范,则可以跳过特定的文本元素以获取所需的内容。
from lxml import htmldoc = html.fromstring("""<li><a href="/stations/1"><span >3</span> Detroit</a></li>""")stop_nodes = doc.cssselect('li a') stop_names = []for start in stop_list: node_text = start.itertext() node_text.next() # Skip '3' stop_names.append(node_text.next().lstrip()) continue您可以将css选择器与Zachary的答案中
text()提到的xpath函数结合使用(如果您使用CSS选择器比使用xpath更舒适):
stop_names = [a.xpath('text()').lstrip() for a in doc.cssselect('li a')]


