ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python xpath 解析网页常用方法总结

2022-04-10 10:03:56  阅读:230  来源: 互联网

标签:xpath lxml 网页 python ignore html utf div


python xpath解析网页用到的是lxml库,lxml的使用方法可以官方文档 http://lxml.de/lxmlhtml.html

xpath 的定位查找,可以查看 http://www.runoob.com/xpath/xpath-tutorial.html

上面的两个教程说的挺详细的,但第一个是英文的,看不起来不是很方便。第二个教程主要是说节点语法的,没有具体的获取内容的方法。
所以,均益在这里总结一下python xpath常用的方法,相信足够用了。

首先说明一下,lxml对处理的字符必须要求是unicode格式,如果网页源代码是utf-8格式,可以用decode(‘utf-8’, ‘ignore’),gbk可以用decode(‘gbk’,’ignore’)

其次,获取xpath最简单方便的就是用浏览器的copy xpath功能,这里以火狐浏览器的来举例。如图按F12打开检查Firebug功能,选择html元素,右键复制xpath

复制xpath

 

以下是具体的代码,里面注释,套用就行,非常方便

 
# -*- coding: utf-8 -*- 
#xpath 解析网页
import urllib2
from lxml import etree
 
html = urllib2.urlopen('http://junyiseo.com/seoxinde/276.html').read()
 
#lxml对处理的字符必须要求是unicode格式如果网页源代码是utf-8格式,可以用decode('utf-8', 'ignore'),gbk可以用decode('gbk','ignore')
 
html = html.decode('utf-8', 'ignore')
#启用xpath解析
tree = etree.HTML(html)
 
#获取属性值/@href /@src
link = tree.xpath('/html/body/section/div[2]/div/article[1]/header/h2/a/@href')
print link
 
 
#获取文字内容a链接 /text()
text = tree.xpath('/html/body/section/div[2]/div/article[3]/header/h2/a/text()')
print text
 
#获取深层次标签的文本内容
wenben = tree.xpath('/html/body/section/div[2]/div/article')
for i in wenben:
    n = i.xpath('string(.)')
    print n

标签:xpath,lxml,网页,python,ignore,html,utf,div
来源: https://www.cnblogs.com/hushaojun/p/16124814.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有