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读取csv文件示例(python操作csv)
Mar 11 Python
Python中的jquery PyQuery库使用小结
May 13 Python
Python对字符串实现去重操作的方法示例
Aug 11 Python
Python实现常见的回文字符串算法
Nov 14 Python
分享一个pycharm专业版安装的永久使用方法
Sep 24 Python
Python实现打印实心和空心菱形
Nov 23 Python
Python将列表中的元素转化为数字并排序的示例
Dec 25 Python
使用pytorch和torchtext进行文本分类的实例
Jan 08 Python
python如何获取apk的packagename和activity
Jan 10 Python
python 中的paramiko模块简介及安装过程
Feb 29 Python
基于python模拟bfs和dfs代码实例
Nov 19 Python
python 图像增强算法实现详解
Jan 24 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防止sql注入示例分析和几种常见攻击正则表达式
2014/01/12 PHP
php json_encode()函数返回json数据实例代码
2014/10/10 PHP
php中文乱码问题的终极解决方案汇总
2017/08/01 PHP
PHP7如何开启Opcode打造强悍性能详解
2018/05/11 PHP
JavaScript Object的extend是一个常用的功能
2009/12/02 Javascript
javascript仿百度输入框提示自动下拉补全
2016/01/07 Javascript
简介BootStrap model弹出框的使用
2016/04/27 Javascript
AngularJS ng-mousedown 指令
2016/08/02 Javascript
移动端js图片查看器
2016/11/17 Javascript
JavaScript计算出两个数的差值
2020/03/19 Javascript
[01:11:11]Alliance vs RNG 2019国际邀请赛淘汰赛 败者组BO1 8.20.mp4
2020/07/19 DOTA
python简单的函数定义和用法实例
2015/05/07 Python
浅谈Python 的枚举 Enum
2017/06/12 Python
python基于ID3思想的决策树
2018/01/03 Python
python 获取指定文件夹下所有文件名称并写入列表的实例
2018/04/23 Python
实例分析python3实现并发访问水平切分表
2018/09/29 Python
python修改txt文件中的某一项方法
2018/12/29 Python
python语言元素知识点详解
2019/05/15 Python
python logging模块的使用总结
2019/07/09 Python
python数据持久存储 pickle模块的基本使用方法解析
2019/08/30 Python
浅谈Python3中print函数的换行
2020/08/05 Python
加拿大时装零售商:Influence U
2018/12/22 全球购物
Easy Spirit官网:美国休闲鞋履中的代表品牌
2019/04/12 全球购物
匡威西班牙官网:Converse西班牙
2019/10/01 全球购物
沃尔玛加拿大:Walmart.ca
2020/03/02 全球购物
SQL Server里面什么样的视图才能创建索引
2015/04/17 面试题
应届大专毕业生个人自荐信
2013/09/22 职场文书
房地产还款计划书
2014/01/10 职场文书
小学体育教学反思
2014/01/31 职场文书
红头文件任命书范本
2014/06/05 职场文书
2014年女职工工作总结
2014/11/27 职场文书
慰问信(范文3篇)
2019/10/23 职场文书
Python机器学习之逻辑回归
2021/05/11 Python
如何给HttpServletRequest增加消息头
2021/06/30 Java/Android
为了顺利买到演唱会的票用Python制作了自动抢票的脚本
2021/10/16 Python
Vue2.0搭建脚手架
2022/03/13 Vue.js