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 相关文章推荐
php使用递归与迭代实现快速排序示例
Jan 23 Python
MySQLdb ImportError: libmysqlclient.so.18解决方法
Aug 21 Python
python下paramiko模块实现ssh连接登录Linux服务器
Jun 03 Python
Python 爬虫爬取指定博客的所有文章
Feb 17 Python
django轻松使用富文本编辑器CKEditor的方法
Mar 30 Python
Python cookbook(数据结构与算法)将序列分解为单独变量的方法
Feb 13 Python
Python设计模式之外观模式实例详解
Jan 17 Python
python实现邮件发送功能
Aug 10 Python
pytorch 准备、训练和测试自己的图片数据的方法
Jan 10 Python
pytorch简介
Nov 11 Python
python3.9和pycharm的安装教程并创建简单项目的步骤
Feb 03 Python
浅谈Python数学建模之固定费用问题
Jun 23 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
做了CDN获取用户真实IP的函数代码(PHP与Asp设置方式)
2013/04/13 PHP
PHP中spl_autoload_register函数的用法总结
2013/11/07 PHP
PHP两种去掉数组重复值的方法比较
2014/06/19 PHP
在Mac OS上自行编译安装Apache服务器和PHP解释器
2015/12/24 PHP
thinkPHP商城公告功能开发问题分析
2016/12/01 PHP
thinkphp 字母函数详解T/I/N/D/M/A/R/U
2017/04/03 PHP
浅析php如何实现爬取数据原理
2018/09/27 PHP
PHP获取php,mysql,apche的版本信息及更多服务器信息
2021/03/09 PHP
Chrome中JSON.parse的特殊实现
2011/01/12 Javascript
JS方法调用括号的问题探讨
2014/01/24 Javascript
解决用jquery load加载页面到div时,不执行页面js的问题
2014/02/22 Javascript
javascript搜索框点击文字消失失焦时文本出现
2014/09/18 Javascript
javascript时间排序算法实现活动秒杀倒计时效果
2021/01/28 Javascript
全面了解构造函数继承关键apply call
2016/07/26 Javascript
webpack打包并将文件加载到指定的位置方法
2018/02/22 Javascript
详解html-webpack-plugin插件(用法总结)
2018/09/12 Javascript
vue如何根据网站路由判断页面主题色详解
2018/11/02 Javascript
vue实践---vue不依赖外部资源实现简单多语操作
2020/09/21 Javascript
使用python编写脚本获取手机当前应用apk的信息
2014/07/21 Python
Python中实现从目录中过滤出指定文件类型的文件
2015/02/02 Python
Python编程中的异常处理教程
2015/08/21 Python
Python读取YUV文件,并显示的方法
2018/12/04 Python
python通过tcp发送xml报文的方法
2018/12/28 Python
PythonWeb项目Django部署在Ubuntu18.04腾讯云主机上
2019/04/01 Python
20行python代码的入门级小游戏的详解
2019/05/05 Python
python 通过文件夹导入包的操作
2020/06/01 Python
Python pexpect模块及shell脚本except原理解析
2020/08/03 Python
python如何控制进程或者线程的个数
2020/10/16 Python
python爬取天气数据的实例详解
2020/11/20 Python
解决pycharm不能自动保存在远程linux中的问题
2021/02/06 Python
css3实现可拖动的魔方3d效果
2019/05/07 HTML / CSS
简约控的天堂:The Undone
2016/12/21 全球购物
电影雨中的树观后感
2015/06/15 职场文书
公司财务管理制度
2015/08/04 职场文书
python基础学习之递归函数知识总结
2021/05/26 Python
python playwright之元素定位示例详解
2022/07/23 Python