今天的状态不是很好哦,但是今天学的是xpath解析,好在不是很难,就还行可以接受!xpath解析涉及到一些html和xml的相关知识。也不是很难,记得我第一次做毕业设计的时候看xml慢慢就看懂了。这里需要导入lxml包,我们所需要的xpath在lxml->etree->xpath内。
#xpath是xml文档中搜索内容的一门语言 #html是xml的一个子集 from lxml import etree
从网上随便扒了一段html的代码,然后写进自己创建的html文件中,记得设定编码方式“utf-8
html="""
EasyDL定制化模型
"""
with open("easydl.html",mode="w",encoding="utf-8") as f:
f.write(html)
f.close()
接下来是xpath解析的重头戏:
把我们设置的html字符串写成etree类型,如果是xml类型的字符串,就用etree.xml。
tree=etree.HTML(html)
接下来的代码段有点乱,今天的状态不算太好。
#①"/"表示层级关系、第一个/表示根节点
#②text()表示拿文本
#③“//”表示后代,在所有后代中寻找
#④"*"表示任意节点,通配符
#③,④不同的点在于,三是在所有的后代中进行搜索,而四是使用一个通配符表示直接后代,类似于占位符
#result=tree.xpath("/html/head//title/text()")
#xpath的顺序是从1开始的,[],表示索引
#result=tree.xpath("/html//link[1]")
#[@]可以通过这种形式通过确定标签的属性来找到需求内容
#result=tree.xpath("/html//link[@rel='preload']")
# head_link_list=tree.xpath("/html//link")
# for link in head_link_list:
# result=link.xpath("./@href")#./表示相对路径,我们已经进入到了link内部,不能再用/,否则回到html。@属性,可以拿到属性值



