python-xpath获取html文档的部分内容
作者:带鱼工作室 时间:2022-10-06 19:41:52
有些时候我在们需要的用正则提取出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)
如果直接打印他是不能够出来的,
我们需要对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)
打印截图:
但是大家可以看到里面的等内容并不是中文,原因是我们使用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)
此时运行结果如下:
那么此时就已经大功告成了!!!
来源:https://blog.csdn.net/liaoningxinmin/article/details/80792846
标签:python,xpath,html文档


猜你喜欢
举例讲解Python设计模式编程中的访问者与观察者模式
2021-06-10 06:38:16
举例讲解Python中metaclass元类的创建与使用
2023-12-11 23:06:57

python break和continue用法对比
2021-11-03 14:36:20
php实现文件下载更能介绍
2023-08-18 14:30:21
OpenCV3.0+Python3.6实现特定颜色的物体追踪
2021-05-13 09:01:03

几个优化WordPress中JavaScript加载体验的插件介绍
2023-11-03 12:03:08
Vue.js监听select2的值改变进行查询方式
2024-04-30 10:42:13
Vue 中使用 CSS Modules优雅方法
2024-04-30 10:23:39
跟我学习javascript的异步脚本加载
2024-04-17 09:59:44
详解python做UI界面的方法
2023-05-24 08:07:41

javascript设计模式之模块模式学习笔记
2024-04-29 13:16:11

Python程序设计入门(3)数组的使用
2023-07-20 07:11:15
Python一阶马尔科夫链生成随机DNA序列实现示例
2021-06-23 07:42:22

python中的lambda函数用法指南
2021-04-15 02:58:15

Python基于回溯法子集树模板解决数字组合问题实例
2022-12-18 15:57:26

python中matplotlib调整图例位置的方法实例
2023-09-11 08:52:13

如何正确编写高质量高性能的MySQL语法
2008-11-27 15:43:00
Python使用QRCode模块生成二维码实例详解
2022-07-04 16:50:44
python列表的逆序遍历实现
2021-08-02 02:01:28

SQL多表联合查询时如何采用字段模糊匹配
2024-01-19 18:06:40
