xml下用xpath
1 2 3 4 | from lxml import etreetree = etree.parse(file_path) root = tree.getroot() title_expression = "/article/title[not(@xml:lang)]//text()" title_content = root.xpath(title_expression) |
直接在网页上的xpath
1 2 | from lxml import html response = requests. get (url) html_content = response.content # 使用lxml解析HTML文档 tree = html.fromstring(html_content) |
1 从节点筛选
/
: 从根节点开始选择。//
: 选择节点,不考虑它们的位置。.
: 选择当前节点。..
: 选择父节点。
2 条件筛选
1 2 3 4 5 6 7 8 9 10 | @选择属性。<br>选择 category 属性为 'fiction' 的 <book> 节点: /bookstore/book[@category= 'fiction' ] 选择 price 属性大于 30 的 <book> 节点 /bookstore/book[@price > 30] 选择不包含某个属性的节点 //bookstore/book[not(@category)] |
4. 选取文字
1 | 在xpath表达式后面加上/text()<br><br>选取该节点下的所有文字 //text()<br><br> |
5. 多项选择
6. 选取之后遍历 body_expression = '/article/body/section'
1 | body_expression = '/article/body/section' <br>body_results = root.xpath(body_expression)<br>body_dict = {}<br>body_dict[ '开头' ] = body_p_results<br> for result in body_results:<br> title = result.xpath( 'title/text()' )<br> title = '' . join (title)title是列表 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!