🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## **引入** xpath解析是我们在爬虫中最常用也是最通用的一种数据解析方式,由于其高效且简介的解析方式受到了广大程序员的喜爱。在后期学习scrapy框架期间,也会再次使用到xpath解析。 ## **环境安装** ```python pip install lxml ``` ## **解析原理** - 使用通用爬虫爬取网页数据 - 实例化etree对象,且将页面数据加载到该对象中 - 使用xpath函数结合xpath表达式进行标签定位和指定数据提取 ## **常用xpath表达式** ```xpath 属性定位: #找到class属性值为song的div标签 //div[@class="song"] 层级&索引定位: #找到class属性值为tang的div的直系子标签ul下的第二个子标签li下的直系子标签a //div[@class="tang"]/ul/li[2]/a 逻辑运算: #找到href属性值为空且class属性值为du的a标签 //a[@href="" and @class="du"] 模糊匹配: //div[contains(@class, "ng")] //div[starts-with(@class, "ta")] 取文本: # /表示获取某个标签下的文本内容 # //表示获取某个标签下的文本内容和所有子标签下的文本内容 //div[@class="song"]/p[1]/text() //div[@class="tang"]//text() 取属性: //div[@class="tang"]//li[2]/a/@href ``` ## **etree对象实例化** ``` - 本地文件: tree = etree.parse(文件名) tree.xpath("xpath表达式") - 网络数据: tree = etree.HTML(网页内容字符串) tree.xpath("xpath表达式") ```