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中zip和unzip数据的方法
May 27 Python
Python查询IP地址归属完整代码
Jun 21 Python
python中返回矩阵的行列方法
Apr 04 Python
python对日志进行处理的实例代码
Oct 06 Python
python用plt画图时,cmp设置方法
Dec 13 Python
Python把对应格式的csv文件转换成字典类型存储脚本的方法
Feb 12 Python
如何使用Python进行OCR识别图片中的文字
Apr 01 Python
如何使用django的MTV开发模式返回一个网页
Jul 22 Python
python3检查字典传入函数键是否齐全的实例
Jun 05 Python
python实现sm2和sm4国密(国家商用密码)算法的示例
Sep 26 Python
pandas实现导出数据的四种方式
Dec 13 Python
Python Django搭建文件下载服务器的实现
May 10 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编程中数组的指针的使用
2015/11/30 PHP
php+jQuery+Ajax实现点赞效果的方法(附源码下载)
2020/07/21 PHP
示例详解Laravel重置密码代码重构
2016/08/10 PHP
thinkPHP5.0框架独立配置与动态配置方法
2017/03/17 PHP
PHP实现在数据库百万条数据中随机获取20条记录的方法
2017/04/19 PHP
PHP实现微信提现功能
2018/09/30 PHP
php获取用户真实IP和防刷机制的实例代码
2018/11/28 PHP
php集成开发环境详解
2019/09/24 PHP
JavaScript的面向对象(二)
2006/11/09 Javascript
javascript 常用关键字列表集合
2007/12/04 Javascript
JQuery 的跨域方法推荐_可跨任何网站
2016/05/18 Javascript
bootstrap datepicker限定可选时间范围实现方法
2016/09/28 Javascript
浅谈javascript:两种注释,声明变量,定义函数
2016/09/29 Javascript
JavaScript 轮播图和自定义滚动条配合鼠标滚轮分享代码贴
2016/10/28 Javascript
JS SetInterval 代码实现页面轮询
2017/08/11 Javascript
基于Datatables跳转到指定页的简单实例
2017/11/09 Javascript
浅谈Webpack核心模块tapable解析
2018/09/11 Javascript
基于Webpack4和React hooks搭建项目的方法
2019/02/05 Javascript
[01:06:18]DOTA2-DPC中国联赛 正赛 Phoenix vs Dynasty BO3 第二场 1月26日
2021/03/11 DOTA
python学习笔记:字典的使用示例详解
2014/06/13 Python
Python脚本判断 Linux 是否运行在虚拟机上
2015/04/25 Python
Python中遍历列表的方法总结
2019/06/27 Python
PyTorch之图像和Tensor填充的实例
2019/08/18 Python
python实现两个文件夹的同步
2019/08/29 Python
如何使用python3获取当前路径及os.path.dirname的使用
2019/12/13 Python
Python: tkinter窗口屏幕居中,设置窗口最大,最小尺寸实例
2020/03/04 Python
Python如何自动获取目标网站最新通知
2020/06/18 Python
Numpy中np.max的用法及np.maximum区别
2020/11/27 Python
ddl,dml和dcl的含义
2016/05/08 面试题
武汉高蓝德国际.net机试
2016/06/24 面试题
乡镇纠风工作实施方案
2014/03/22 职场文书
航海技术专业毕业生求职信
2014/04/06 职场文书
人事专员岗位职责说明书
2014/07/30 职场文书
农业项目建议书
2014/08/25 职场文书
2015年学校工作总结范文
2015/04/20 职场文书
2015年安全员工作总结范文
2015/04/22 职场文书