python-xpath获取html文档的部分内容


Posted in Python onMarch 06, 2020

有些时候我在们需要的用正则提取出html中某一个部分的文字内容,如图:

python-xpath获取html文档的部分内容

获取dd部分的html文档,我们要通过它的一个属性去确定他的位置才可以拿到他这个部分我们可以看到他的这个属性class='row clearfix ',然后用xpath去获取到这部分:

name = tree.xpath("//dd[@class='row clearfix ']")
from lxml import html
import requests
url = 'http://navi.cnki.net/knavi/JournalDetail/GetArticleList?year=2018&issue=04&pykm=DZXU&pageIdx=0&pcode=CJFD'
res = requests.get(url)
tree = html.fromstring(res.text)
name = tree.xpath("//dd[@class='row clearfix ']")
print(name)

如果直接打印他是不能够出来的,

python-xpath获取html文档的部分内容

我们需要对Element进行处理,用到name1 = html.tostring(name[0]),代码如下:

from lxml import html
import requests
url = 'http://navi.cnki.net/knavi/JournalDetail/GetArticleList?year=2018&issue=04&pykm=DZXU&pageIdx=0&pcode=CJFD'
res = requests.get(url)
tree = html.fromstring(res.text)
name = tree.xpath("//dd[@class='row clearfix ']")
name1 = html.tostring(name[0])
print(name1)

打印截图:

python-xpath获取html文档的部分内容

但是大家可以看到里面的等内容并不是中文,原因是我们使用tostring方法输出的是修正后的HTML代码,但是结果是bytes类型,在python中bytes类型是不可以进行编码的,需要转换成字符串,使用代码name1.decode(),此时我们将bytes类型转换为str(字符串)类型。

那么此时我们关键是如何将$#26080;此类的符号转换成汉字!!!那么首先要搞清楚这是什么编码?这类符号是HTML、XML 等 SGML 类语言的转义序列。它们不是”编码“,也就是说我们不能使用utf-8、gbk等编码进行处理,需要使用HTMLParse进行处理,完整代码如下:

from lxml import html
import requests
from html.parser import HTMLParser #导入html解析库
url = 'http://navi.cnki.net/knavi/JournalDetail/GetArticleList?year=2018&issue=04&pykm=DZXU&pageIdx=0&pcode=CJFD'
res = requests.get(url)
tree = html.fromstring(res.text)
name = tree.xpath("//dd[@class='row clearfix ']")
name1 = html.tostring(name[0])
name2 = HTMLParser().unescape(name1.decode())
print(name2)

此时运行结果如下:

python-xpath获取html文档的部分内容

那么此时就已经大功告成了!!!

以上这篇python-xpath获取html文档的部分内容就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
详解Python中的__new__()方法的使用
Apr 09 Python
Python爬虫爬验证码实现功能详解
Apr 14 Python
Python中将变量按行写入txt文本中的方法
Apr 03 Python
Python 实现网页自动截图的示例讲解
May 17 Python
python爬取淘宝商品销量信息
Nov 16 Python
python文件拆分与重组实例
Dec 10 Python
opencv python 图像轮廓/检测轮廓/绘制轮廓的方法
Jul 03 Python
详解Python对JSON中的特殊类型进行Encoder
Jul 15 Python
Python Django基础二之URL路由系统
Jul 18 Python
python之MSE、MAE、RMSE的使用
Feb 24 Python
Python Tornado之跨域请求与Options请求方式
Mar 28 Python
python实现xml转json文件的示例代码
Dec 30 Python
关于python中的xpath解析定位
Mar 06 #Python
Python网络爬虫信息提取mooc代码实例
Mar 06 #Python
appium+python adb常用命令分享
Mar 06 #Python
Python+appium框架原生代码实现App自动化测试详解
Mar 06 #Python
python使用paramiko实现ssh的功能详解
Mar 06 #Python
python GUI库图形界面开发之PyQt5滚动条控件QScrollBar详细使用方法与实例
Mar 06 #Python
Python object类中的特殊方法代码讲解
Mar 06 #Python
You might like
PHP写杨辉三角实例代码
2011/07/17 PHP
php递归获取目录内文件(包含子目录)封装类分享
2013/12/25 PHP
yii实现model添加默认值的方法(2种方法)
2016/01/06 PHP
ThinkPHP 框架实现的读取excel导入数据库操作示例
2020/04/14 PHP
combox改进版 页面原型参考dojo的,比网上jQuery的那些combox功能强,代码更小
2010/04/15 Javascript
深入理解JavaScript系列(8) S.O.L.I.D五大原则之里氏替换原则LSP
2012/01/15 Javascript
document.documentElement的一些使用技巧
2013/04/18 Javascript
限制textbox或textarea输入字符长度的JS代码
2013/10/16 Javascript
jquery遍历checkbox的注意事项说明
2014/02/21 Javascript
JavaScript格式化日期时间的方法和自定义格式化函数示例
2014/04/04 Javascript
js获取IP地址的方法小结
2014/07/01 Javascript
js+jquery常用知识点汇总
2015/03/03 Javascript
JavaScript更改字符串的大小写
2015/05/07 Javascript
Javascript中Array用法实例分析
2015/06/13 Javascript
jQuery实现图片左右滚动特效
2020/04/20 Javascript
对js eval()函数的一些见解
2016/08/15 Javascript
jQuery插件echarts实现的多折线图效果示例【附demo源码下载】
2017/03/04 Javascript
js 获取html5的data属性实现方法
2017/07/28 Javascript
用Vue.extend构建消息提示组件的方法实例
2017/08/08 Javascript
js实现省市级联效果分享
2017/08/10 Javascript
vue配置font-awesome5的方法步骤
2019/01/27 Javascript
React中使用外部样式的3种方式(小结)
2019/05/28 Javascript
解决vue-cli 打包后自定义动画未执行的问题
2019/11/12 Javascript
python 类详解及简单实例
2017/03/24 Python
Spark处理数据排序问题如何避免OOM
2020/05/21 Python
HTML5 语音搜索只需一句代码
2013/01/03 HTML / CSS
荷兰本土平价百货:HEMA
2017/10/23 全球购物
维德科技C#面试题笔试题
2015/12/09 面试题
几道Java和数据库的面试题
2013/05/30 面试题
简历自我评价模版
2014/01/31 职场文书
一年级学生评语大全
2014/04/21 职场文书
个人工作年终总结
2015/03/09 职场文书
小学公民道德宣传日活动总结
2015/03/23 职场文书
工伤事故赔偿协议书
2015/08/06 职场文书
pandas中DataFrame检测重复值的实现
2021/05/26 Python
苹果电脑mac os中货币符号快捷输入
2022/02/17 杂记