python解析xml和html元素定位,解决a标签下有⼦标签时,获
取a标签的text⽂本问题
python处理xml文件
闲的蛋疼处理了个xml.
xml 长这样:
<div class="list all-list">
<div class="item" data-search="brbrazil" οnclick="selectCountry(this)" cid="2262" pz="+55">
<a>
<span class="country_flag BR"></span>Brazil
</a>
</div>
<div class="item" data-search="brbrazil" οnclick="selectCountry(this)" cid="2262" pz="+55">
<a>
<span class="country_flag FR"></span>France
</a>
</div>
</div>
尝试了⼏个包去获取这个Brazil,不成功的代码都删除了,以下⼤概凭记忆粘⼀下步骤,报错需要调⼀下。
1. xml 的parse。 获取失败,结果为空。
from xml.dom.minidom import parse
dom_tree = parse("./l")
root_node = dom_tree.documentElement
tag_a = ElementsByTagName('a')
a = tag_a[0]
print(a.firstChild.data)
2.  lxml  解析然后xpath 获取⽂本属性失败(代码未列出,可参考上⾯的),然后⼜根据text属性定位,发现到不。
from lxml import etree
text = "(xml⽂本内容)"
html = etree.HTML(text)
rst = html.xpath('//a')
rst = html.xpath('//a[contains(text(),"France")]')
3. BeautifulSoup 获取成功,这⾥你会发现,如果span标签中也有⽂本,会⼀同提取出来。
from bs4 import BeautifulSoup
f = open("./option.html", "r")
html = f.read()
soup = BeautifulSoup(html, 'lxml')
a = soup.find_all("a")
print(a[0].getText())

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。