有些时候我在们需要的用正则提取出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)

此时运行结果如下:

那么此时就已经大功告成了!!!

以上这篇python-xpath获取html文档的部分内容就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

本文标题: python-xpath获取html文档的部分内容

本文地址: http://www.cppcns.com/jiaoben/python/302295.html

python xpath提取转码_python-xpath获取html文档的部分内容相关推荐

  1. python关键词提取源码_Python 结巴分词 关键词抽取分析

    关键词抽取就是从文本里面把跟这篇文档意义最相关的一些词抽取出来.这个可以追溯到文献检索初期,当时还不支持全文搜索的时候,关键词就可以作为搜索这篇论文的词语.因此,目前依然可以在论文中看到关键词这一项. ...

  2. python爬取文件归类_python爬取各类文档方法归类汇总

    HTML文档是互联网上的主要文档类型,但还存在如TXT.WORD.excel.PDF.csv等多种类型的文档.网络爬虫不仅需要能够抓取HTML中的敏感信息,也需要有抓取其他类型文档的能力.下面简要记录 ...

  3. python实现自动打卡_python实现腾讯文档自动打卡教程

    ​明明365天都不得不待在家里面,居然还要天天去腾讯文档打卡,烦死人了. 天天都填一样的内容,重复无意义的事情,时间就是金钱,浪费人时间约等于谋财害命呀. 所以参考了网络上的代码,并做了改进,用pyt ...

  4. python xpath提取td标签_Python Xpath 提取html整个元素(标签与内容)

    提取html某标签中文字时,文字中含有:"2O5",导致提取的文字不符合预期. 解决方法: #coding=utf-8 from lxml import etree from HT ...

  5. python关键字提取源码_python实现按关键字筛选日志文件

    最近忙成了狗,五六个项目堆在一起,头疼的是测试还失惊无神的给我丢来一个几十甚至上百M的日志文件,动不动就几十上百万行,就算是搜索也看得头昏眼花的,因此自己花了点时间写了一段小脚本去过滤日志,当然这样的 ...

  6. python关闭文件的函数_python打开与关闭文档

    打开和关闭文件 现在,您已经可以向标准输入和输出进行读写.现在,来看看怎么读写实际的数据文件. Python 提供了必要的函数和方法进行默认情况下的文件基本操作.你可以用 file 对象做大部分的文件 ...

  7. python编辑word的格式_Python 如何对word文档(.docx)的页眉和页脚进行编辑?

    刚好接了个任务要批量修改一批docx页眉,经过一天面向so编程,以下是代码.因为本人只是业余,代码是能用就好,如有错误请指出. PS1.对齐什么的懒得调了. PS2.不适用于doc格式 #批量修改do ...

  8. 计算机毕业设计django基于python商品比价平台(源码+系统+mysql数据库+Lw文档)

    项目介绍 随着计算机技术的发展和网络的普及.采用当前流行的B/S模式以及3层架构的设计思想通过Python技术来开发此系统的目的是建立一个配合网络环境的商品比价系统的平台,这样可以有效地解决数据商品比 ...

  9. python把csv做成柱状图_python读csv格式文档并用matplotlib绘制图表

    import csv from matplotlib import pyplot as plt from datetime import datetime fileName = 'sitka_weat ...

最新文章

  1. java组件化的优势_组件化编程开发如何判断组件的优劣性
  2. Spring Cloud Alibaba - 09 Ribbon 饥饿加载及其他配置参数解读
  3. SAP WM模块常用T-code
  4. java中集合的结构list类型
  5. 使用CLONE TABLE方式实现同region不同可用区的MaxCompute
  6. java删除某些段落word_Java 批量删除Word中的空白段落示例代码
  7. Java内嵌Groovy脚本引擎进行业务规则剥离(一)
  8. Response.End()在Webform和ASP.NET MVC下的表现差异
  9. 力扣-989 数组形式的整数加法
  10. 【软件工具使用】高效使用 Visio 绘图
  11. Centos 下安装 文泉驿 字体 Odoo
  12. 一台 ZXHN F650(GPON ONU) 学习小记
  13. 零基础学习C++系列课程(二) 持续更新中
  14. 计算器计算反三角函数或三角函数的时候结果不对
  15. c语言输出实心心矩形,c语言打印空白星号矩形
  16. QT编程入门系列文章之二十六——反走样
  17. pyqt使用graphicsView显示图片
  18. vce 题库导入_PDF 题库转VCE 文件
  19. pion ice项目源码分析
  20. 知乎日报APP:API接口分析

热门文章

  1. Angular依赖注入的一个例子和注入原理单步调试
  2. SAP CRM WebClient UI recent object的后台存储实现
  3. 重构老系统遗留代码的一些方法学习笔记
  4. How is OData selected implemented
  5. Use BAdI to link appointment to a given opportunity during creation
  6. 如何找到Fiori Launchpad tile所属的catalog id
  7. PRDICQR action column
  8. Java Spring源码研究之BeanNameUrlHandlerMapping
  9. winrar皮肤的更换
  10. VirtualBox Network设置的NAT和Bridged Adapter模式区别