python小白学习记录 运用lxml的xpath解析html文件

Posted jswf

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python小白学习记录 运用lxml的xpath解析html文件相关的知识,希望对你有一定的参考价值。

 1 from lxml import etree
 2 text = "<div><p>nmsl</p><span>nmsl</span></div>"
 3 def htmlstree(text):
 4     html = etree.HTML(text)
 5     result = etree.tostring(html)
 6     print(result)
 7     return result.decode(utf-8)
 8 #解析html字符串并且会为标签自动加上<html><body></body></html>
 9 def parseetree():
10     parser = etree.HTMLParser(encoding=utf-8)
11     html = etree.parse("index111.html",parser=parser)
12     result = etree.tostring(html,encoding=utf-8).decode("utf-8")
13     print(result)
14 #解析xml 由于某写html标签会不全用普通的xml解析器会出错 如<br/>  所以要指定html解析器
15 if __name__ == __main__:
16     parseetree()

以上为etree的使用范例

分别解析了html字符串和html文件

 


 

from lxml import etree
def parseetree():
    parser = etree.HTMLParser(encoding=utf-8)
    html = etree.parse("index111.html",parser=parser)
    trs = html.xpath("//a[@onclick][@id]")
    for tr in trs:
        result = etree.tostring(tr,encoding=utf-8).decode("utf-8")
        print(result)
def parseetree1():
    parser = etree.HTMLParser(encoding=utf-8)
    html = etree.parse("index111.html",parser=parser)
    tr = html.xpath("//a[@onclick][@id]")[3]
    result = etree.tostring(tr,encoding=utf-8).decode("utf-8")
    print(result)
if __name__ == "__main__":
    parseetree()
    print("***************")
    parseetree1()

 

以上为运用xpath来对html进行解析

以下是运行结果

技术图片

 附:https://www.w3school.com.cn/xpath/xpath_syntax.asp          xpath语法

 

以上是关于python小白学习记录 运用lxml的xpath解析html文件的主要内容,如果未能解决你的问题,请参考以下文章

Python爬虫:通过爬取CSDN博客信息,学习lxml库与XPath语法

Python爬虫基础——XPath语法的学习与lxml模块的使用

Python Xpath:lxml.etree.XPathEvalError:无效谓词

Python爬虫_XPath与lxml类库

2020第一周学习记录

Python解析库lxml与xpath用法总结