python读取html指定内容_python-xpath获取html文档的部分内容

有些时候我在们需要的用正则提取出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爬虫初步学习 url:表示远程数据的路径,一般是指网址。 Beautiful Soup:是python的一个库,最主要的功能是从网页抓取数据。使用Beautiful Soup时,由于被移植到BS4了,那么导入时我们需要 from bs4 import BeautifulSoup。Beautiful Soup自动将输入文档转换为Unicode编码(Unicode 是国际组织制定的可以容纳世界上所有文字和符号... 阅读详情

相关推荐

python lxml.html.fromstring与etree.HTML()

@[TOC](python lxml.html.fromstring与etree.HTML()) 晚上看了一个大佬的爬虫解析代码, 有下面这样一段 import lxml.html resp = requests.get(url, headers=headers) text = resp.content.decode('utf8') # 查了一下,下面这一句也是把html转换为html document树 doc = lxml.html.fromstring(text) 我看的很懵 因为我以前从来都是

weixin_44154094的博客 3241

Python爬虫入门之爬虫解析提取数据的四种方法

本文主要介绍了Python爬虫入门之爬虫解析提取数据的四种方法,通过具体的内容向大家展现,希望对大家Python爬虫的学习有所帮助。基础爬虫的固定模式笔者这里所谈的基础爬虫,指的是不需要处理像异步加载、验证码、代理等高阶爬虫技术的爬虫方法。一般而言,基础爬虫的两大请求库urllib和requests中requests通常为大多数人所钟爱,当然urllib也功能齐全。两大解析库BeautifulSoup因其强大的HTML文档解析功能而备受青睐,另一款解析库lxml在搭配xpath表达式的基础上也效率提高。

xuezhangmen的博客 2001

lxml.html.fromstring 和 etree.HTML(sample)区别

lxml 通常都是用etree解析,书上却用的是lxml.html,用我浅薄的英文看了下,貌似etree功能更多,lxml.html专解析html,带了点特殊的方法.... etree from lxml import etree html = etree.HTML(sample) result1 = etree.tostring(html,pretty_print =True) print(re...

weixin_44818729的博客 3593

python获取html_python-xpath获取html文档部分内容

有些时候我在们需要的用正则提取出html中某一个部分的文字内容,如图:获取dd部分html文档,我们要通过它的一个属性去确定他的位置才可以拿到他这个部分我们可以看到他的这个属性class='row clearfix ',然后用xpath获取到这部分:name = tree.xpath("//dd[@class='row clearfix ']")from lxml import htmlimp...

weixin_39747975的博客 509

python爬虫之xpath解析(附实战)

xpath是学爬虫的必备工具,其选择功能十分强大,它提供了非常简明的路径选择表达式,另外,它还提供了超过100个内建函数,用于字符串、数值、时间的匹配以及节点、序列的处理等,几乎所有我们想要定位的节点,都可以用XPath来选择。 当然我也是小白,可能写的不对或者不足还望指出,有不懂的可以直接评论或者私我。

小白不白 5万+

Python爬虫实战之xpath解析

XPath是一门在XML文档中查找信息的语言,最初是用来搜寻XML文档的,但是它同样适用于HTML文档的搜索。所以在Python爬虫中,我们经常使用xpath解析这种高效便捷的方式来提取信息。

阿浩的博客 4万+

python通过xpath读取html指定内容获取部分html代码

有时候我们并不想要网页中的具体文字内容,而是某一部分HTML代码: <div class="pageContent"><p style="text-indent:2em;">南方地区...</p></div> 这时候可以用到etree.tostring import requests from lxml import etree url = 'http://www.weather.com.cn/index/zxqxgg1/new_wlstyb..

執筆冩回憶 3033

python 获取li的内容_Python爬虫神器Xpath的使用

在用 Python 实现爬虫时,可以使用 requests 库访问资源,然后用正则表达式提取信息。但是,这里会有一些繁琐,因为正则表达式的书写是比较严格的,万一有一个地方写错了,可能会导致匹配失败无法提取需要的信息。对于网页的节点来说,可以定义 id、class 或其他属性。节点之间有层次关系,在网页中,其实可以通过 Xpath 定位一个或多个节点。那么相应的,在页面解析的时候,利用 Xpath ...

weixin_39756235的博客 2274

python爬虫之xpath入门

XPATH(XML Path Language),它可以在 XML 和 HTML文档中对元素和属性进行查找和遍历。XPath 使用路径表达式来选取 XML 文档中的节点或节点集。这些路径表达式和我们在常规的电脑文件系统中看到的表达式非常类似。使用chrome 插件选择标签时候,选中时,选中的标签会添加属性class=“xh-highlight”

hjc_042043的博客 4712

python使用xpath解析html

python使用xpath解析html

zhk 1522

Python3爬虫——用Xpath提取网页信息

本文概述了Python3利用Xpath获得网页信息并返回的方法,内容Xpath的梗概和安装 Xpath常用规则 使用Xpath 接入HTML文本 从内存中读取 从文件中读取 查找节点 所有节点 指定节点 属性多值匹配 多属性匹配 选择顺序 查找子孙节点 查找父节点 获得属性和文本 节点轴选择

e_more_day的博客 3882

Python 通过 xpath、CSS 解析 HTML / XML、scrapy 内置 ( xpath、re、css )、LinkExtractor

Python 通过 xpath、CSS 解析 HTML / XML、scrapy 内置 ( xpath、re、css )、LinkExtractor

freeking101的博客 1万+

python xml xpath,Python使用XPath解析XML文档

XPath(XML Path Language)是一种小型的查询语言:1)可在XML中查找信息2)支持HTML的查找3)通过元素和属性进行导航python开发使用XPath条件:由于XPath属于lxml库模块,所以首先要安装库lxmlXPath的使用方法:首先讲一下XPath的基本语法知识:四种标签的使用方法1)//双斜杠 定位根节点,会对全文进行扫描,在文档中选取所有符合条件的内容,以列表...

weixin_26851157的博客 1276

python-Xpath语法

一、XMl简介 (一)什么是 XML XML 指可扩展标记语言(EXtensible XML 是一种标记语言,很类似 HTML。 XML 的设计宗旨是传输数据,而非显示数据。 XML 的标签需要我们自行定义。 XML 被设计为具有自我描述性。 XML 是 W3C 的推荐标准。 W3School 官方文档:http://www.w3school.com.cn/xml/index.asp (二)XML 和 HTML 的区别 他们两者都是用于操作数据或者结构数据,在结构上大致相同的,但他们在本质上却存在着明显

zyx13513314194的博客 2191

html文件xpath解析语法,数据解析之XPath语法和lxml模块

什么是XPathxpath(XML Path Language)是一门在XML和HTML文档中查找信息的语言,可用来在XML和HTML文档中对元素和属性进行遍历。XPath开发工具Chrome插件XPath Helper。Firefox插件Try XPathXPath语法选取节点:XPath 使用路径表达式来选取 XML 文档中的节点或者节点集。这些路径表达式和我们在常规的电脑文件系统中看到的...

weixin_33657499的博客 1894

python简单易懂的lxml读取HTML节点及常用操作方法

处理HTML或XML文档时,获取节点的属性和属性值是非常常见的需求。下面详细解释如何获取标签的全部属性以及如何分别获取单个属性和属性值。接下来,我们根据子节点的属性构建一个完整的XPath路径。如果你只需要获取某个特定属性的值,可以直接通过键访问字典中的值。下面是一个综合示例,展示了如何获取节点的所有属性、单个属性以及如何处理特殊情况下的属性值。来获取节点的所有子节点,node.getparent()获取节点的所有父节点。首先,我们遍历一个节点的所有子节点,并获取每个子节点的XPath路径。

qq_74177889的博客 2383

Python中使用XPath提取HTML页面信息

使用XPath和lxml库在Python中提取HTML页面信息是一种高效的数据抓取方法。XPath强大的查询功能让它在解析复杂的HTML文档时显得尤为出色。本文提供的示例只是XPath能力的一点展示,实际上,通过学习XPath的更多功能,你可以应对各种复杂的网页数据提取需求。不过,需要注意的是,过度爬取和数据抓取可能违反网站的服务条款,因此在使用这些技术时应始终遵守法律法规和道德标准。

Web安全工具库 1048

Python3使用xpath爬原创力文档

Python3使用xpath爬原创力文档准备工作源代码 准备工作 首先,我们进入原创力文档官网,随便点击一篇pdf文章,进入如下界面: 然后点击“好的,开始阅读”进入全屏界面。接着,按“F12”进入开发者工具;点击开发者界面左上角的箭头符号,选择第一页,开发者工具界面则会定位相应的HTML标签处;定位的光标处中src中的“//view-cache.book118.com/view10/M00/1A/32/wKh2Dl9Df5SAcs8-AADV0nCN1hY314.png”则是我们后续下载需要的URL地址

Ervin_yi的博客 4567
上一篇: qt 调用外部类函数_【Java学习笔记(五)】之内部类的要点介绍
下一篇: 眼图在通信系统中有什么意义_人脸识别功能在景区票务系统中有什么意义?
weixin_39614011
博客等级 码龄9年 26粉丝 137原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值