商务服务
黄页88网站关键词怎么做/seo优化诊断工具
2024-12-29 09:50

人生苦短,我用 Python

黄页88网站关键词怎么做/seo优化诊断工具

前文传送门

小白学 Python 爬虫(1):开篇

小白学 Python 爬虫(2):前置准备(一)基本类库的安装

小白学 Python 爬虫(3):前置准备(二)Linux基础入门

小白学 Python 爬虫(4):前置准备(三)Docker基础入门

小白学 Python 爬虫(5):前置准备(四)数据库基础

小白学 Python 爬虫(6):前置准备(五)爬虫框架的安装

小白学 Python 爬虫(7):HTTP 基础

小白学 Python 爬虫(8):网页基础

小白学 Python 爬虫(9):爬虫基础

小白学 Python 爬虫(10):Session 和 cookies

小白学 Python 爬虫(11):urllib 基础使用(一)

小白学 Python 爬虫(12):urllib 基础使用(二)

小白学 Python 爬虫(13):urllib 基础使用(三)

小白学 Python 爬虫(14):urllib 基础使用(四)

小白学 Python 爬虫(15):urllib 基础使用(五)

小白学 Python 爬虫(16):urllib 实战之爬取妹子图

小白学 Python 爬虫(17):Requests 基础使用

小白学 Python 爬虫(18):Requests 进阶操作

前面两篇我们介绍了 Requests 的使用,原本是想再来一个实战的,正准备搞事情的时候想起来上次实战还给自己挖了一个坑, Xpath 还没介绍,还是乖乖的先介绍解析库吧。

XPath ,全称 XML Path Language ,即 XML 路径语言,它是一门在 XML 文档中查找信息的语言。它最初是用来搜寻 XML 文档的,但是它同样适用于 HTML 文档的搜索。

首先,还是敬上 Xpath 的官方网站:https://www.w3.org/TR/xpath/all/ 。

其次,再敬上两个还不错的学习地址

w3school:https://www.w3school.com.cn/xpath/index.asp

菜鸟教程:https://www.runoob.com/xpath/xpath-tutorial.html

下面列出了最有用的路径表达式

表达式描述nodename选取此节点的所有子节点。/从根节点选取。//从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。.选取当前节点。..选取当前节点的父节点。@选取属性。

注意,在使用 Xpath 之前,需要先确保安装好 lxml 库,如果没有安装,可以参考前面的前置准备进行安装。

首先需要引入 lxml 库的 etree 模块,接着引入 Requests 模块,小编这里直接以自己的博客站用作示例。

结果如下

可以看到结果是成功爬取,这里我们首先使用 requests 获取首页的源代码 byte 数据流,接着使用 decode() 进行解码,解码后将字符串传入 etree.HTML() 构建了一个 lxml.etree._Element 对象,接着我们对这个对象做了 tostring() 转换字符串并且进行打印。

注意: 这里使用 tostring() 进行转化字符串的时候,一定需要添加参数 encoding ,否则中文将会显示为 Unicode 编码。

我们构建完成了 Element 对象,接着我们就可以开始愉快的 Xpath 学习了。

我们会用  开头的 XPath 规则来选取所有符合要求的节点。示例(依然采用上面的 html )

结果如下

结果太长仅截取部分。

这里使用 * 代表匹配所有节点,也就是整个 HTML 文本中的所有节点都会被获取。可以看到,返回形式是一个列表,每个元素是 Element 类型,其后跟了节点的名称,如 html 、 head 、 meta 等,所有节点都包含在列表中了。

当然,在这里匹配也可以指定节点的名称,例如获取所有的 meta 节点

结果如下

这里要选取所有 meta 节点,可以使用  ,然后直接加上节点名称即可,调用时直接使用  方法即可。由于返回的是一个列表,所有要获取特定的某个 meta 的时候,可以直接在 [] 中加索引,例如  。

获取子节点一般可以使用  或者  来获取子节点或者孙子节点。

比如现在想获取所有的文章内容的块,如下

红框所标识的内容,可以看到 DOM 结构为  下面的  ,那么这个语句可以这么写

结果如下

此处的  是用于获取子节点,如果想要获取孙子节点,如  下面的 

 和  来查找子节点,那么肯定有语法可以查找父节点,不然只能向下查询不能向上查询就有点就有点太傻了。

 来实现的,比如我们先找到一篇文章的图片,现在要向上查找它的  ,如下图

 属性为  的  ,然后获取它的父节点  ,并且打印他的  属性,代码如下

 。

 符号进行属性过滤。

 为  的 
 的子节点中,  为  的 

最新文章
苹果手机充不进电是什么原因手机充不上电是什么原因「苹果手机充不进电是什么原因」
随着智能手机的普及,苹果手机凭借其卓越的性能和独特的生态系统,赢得了众多用户的青睐。然而,在使用过程中,有时会遇到手机无
高考考场分布图来了!还要注意这些……手机带「高考考场分布图来了!还要注意这些……」
山东省2023年夏季高考和高中学业水平等级考试(以下统称“夏季高考”)将于6月7—10日举行,考试临近,有哪些事需要注意?让我们
荣耀X50i+和荣耀X50i配置对比详解,哪款更值得入手?手机配置对比「荣耀X50i+和荣耀X50i配置对比详解,哪款更值得入手?」
今年各大国产千元手机都卷起来了,有越来越多的越级配置来到了千元手机市场,吸引了许多网友的关注。继荣耀X50i之后,荣耀官方在
云电脑教程:怎么用云电脑手机玩游戏?手机云电脑「云电脑教程:怎么用云电脑手机玩游戏?」
游戏已经成为刚需,不少游戏都开始在手机上玩,即使没出手游也是可以同步进行,和小极来了解手机玩游戏教程。首先,在手机上下载
至尊贵族奢华 诺基亚8800A奢华6300元诺基亚8800手机「至尊贵族奢华 诺基亚8800A奢华6300元」
2011年4月12日, 诺基亚 8800A (行货)在给出了6300元的报价,这个 价格 相比前一段时间大降200元。该机为行货版本,其配件包括
手机卡丢了怎么办电信卡不用了呢怎么注销电信手机卡怎么注销「手机卡丢了怎么办电信卡不用了呢怎么注销」
大家好,关于手机卡丢了怎么办电信卡不用了呢怎么注销很多朋友都还不太明白,今天小编就来为大家分享关于电信卡丢了怎么销号的知
华为matex使用的是什么系统?华为手机是什么系统「华为matex使用的是什么系统?」
大家都知道,在华为matex未发布之前,不少人都以为它会采用华为自研的鸿蒙系统,但这种说法被否定了,首款鸿蒙手机可能是明年3月
小米6手机通话录音在哪里?小米手机通话录音在哪里找「小米6手机通话录音在哪里?」
小米手机录音功能具体操作步骤:1、按电话图标进入电话界面2、按菜单键打开菜单,找到右下角设置图标3、点击设置图标,进入设置
华为手机adb驱动工具华为手机adb驱动工具v1.3 官方华为手机驱动「华为手机adb驱动工具华为手机adb驱动工具v1.3 官方」
华为手机adb驱动工具专门用于华为安卓手机,安装本驱动后才能连接电脑与手机进行各种操作,可以解锁手机。软件操作简单,打开后