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 相关文章推荐
python3抓取中文网页的方法
Jul 28 Python
Python ftp上传文件
Feb 13 Python
Python中列表元素转为数字的方法分析
Jun 14 Python
使用Python对Excel进行读写操作
Mar 30 Python
python中Switch/Case实现的示例代码
Nov 09 Python
python @property的用法及含义全面解析
Feb 01 Python
pytorch训练imagenet分类的方法
Jul 27 Python
解决python xx.py文件点击完之后一闪而过的问题
Jun 24 Python
python logging模块书写日志以及日志分割详解
Jul 22 Python
django rest framework serializer返回时间自动格式化方法
Mar 31 Python
Python xpath表达式如何实现数据处理
Jun 13 Python
pandas之分组groupby()的使用整理与总结
Jun 18 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代码(星期六,星期日总和)
2009/11/12 PHP
php mb_substr()函数截取中文字符串应用示例
2014/07/29 PHP
php在apache环境下实现gzip配置方法
2015/04/02 PHP
php获取、检查类名、函数名、方法名的函数方法
2015/06/25 PHP
php计算多个集合的笛卡尔积实例详解
2017/02/16 PHP
Thinkphp开发--集成极光推送
2017/09/15 PHP
jquery关于图形报表的运用实现代码
2011/01/06 Javascript
jquery 如何动态添加、删除class样式方法介绍
2012/11/07 Javascript
使用Post提交时须将空格转换成加号的解释
2013/01/14 Javascript
window.opener用法和用途实例介绍
2013/08/19 Javascript
深入理解JavaScript系列(43):设计模式之状态模式详解
2015/03/04 Javascript
JS+CSS实现带小三角指引的滑动门效果
2015/09/22 Javascript
jquery动画效果学习笔记(8种效果)
2015/11/13 Javascript
javascript从定义到执行 你不知道的那些事
2016/01/04 Javascript
jQuery加密密码到cookie的实现代码
2017/04/18 jQuery
d3.js实现立体柱图的方法详解
2017/04/28 Javascript
浅谈JS对html标签的属性的干预以及对CSS样式表属性的干预
2017/06/25 Javascript
关于react-router的几种配置方式详解
2017/07/24 Javascript
详解微信小程序胶囊按钮返回|首页自定义导航栏功能
2019/06/14 Javascript
详解钉钉小程序组件之自定义模态框(弹窗封装实现)
2020/03/07 Javascript
three.js利用射线Raycaster进行碰撞检测
2020/03/12 Javascript
[01:42]辉夜杯战队访谈宣传片—FANTUAN
2015/12/25 DOTA
用python的requests第三方模块抓取王者荣耀所有英雄的皮肤实例
2017/12/14 Python
Python小游戏之300行代码实现俄罗斯方块
2019/01/04 Python
python实现拉普拉斯特征图降维示例
2019/11/25 Python
Python3列表List入门知识附实例
2020/02/09 Python
自荐信怎么写好
2013/11/11 职场文书
优秀演讲稿范文
2013/12/29 职场文书
会计与审计毕业生自荐信范文
2013/12/30 职场文书
周年庆典主持词
2014/04/02 职场文书
机关保密承诺书
2014/06/03 职场文书
现场活动策划方案
2014/08/22 职场文书
纪念九一八事变演讲稿1000字
2014/09/14 职场文书
五四青年节活动总结
2015/02/10 职场文书
工作感言一句话
2015/08/01 职场文书
FP-growth算法发现频繁项集——发现频繁项集
2021/06/24 Python