【网络安全带你练爬虫-100练】第11练:xpath快速定位提取数据

目录

一、目标1:使用etree解析数据

二、目标2:使用xpath爬取指定数据

三、目标3:提取指定数据

 四、网络安全小圈子


一、目标1:使用etree解析数据

其余的不用过多介绍,前面的练习都给大家已经过了一遍

def get_page():url = 'https://www.chinaz.com/'headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:107.0) Gecko/20100101 Firefox/107.0",}res1 = requests.get(url, headers=headers, timeout=10)res = res1.content.decode('utf-8')  tree = etree.HTML(res)

其中数据解析代码如下

    tree = etree.HTML(res)

对返回的内容进行UTF-8解码,不然会出现乱码

    res = res1.content.decode('utf-8') 



二、目标2:使用xpath爬取指定数据

我们来爬一下这几个标题

 

找上一级

可以看到他们都在不同li标签下

所以他们的上一级标签ul相当于是我们的列表合集

定位xpath路径

定位li的xpath路径

因为我们要获取到ul下所有li列表

 xpath路径如下

    list = tree.xpath('//*[@id="cz"]/div[2]/div[3]/div/div[1]/div[1]/div/div[2]/div[2]/div/ul/li')

打印出来可以看见

 



三、目标3:提取指定数据

定位xpath

然后还有3个标签才到h2标签

 

遍历每一个目标标签,并转为text()格式

    f = open('test', 'w', encoding ='utf-8')for l in ul_list:desc = l.xpath('./div/div[1]/a/h2/text()')[0]print(desc + '\n')f.write(str(desc) + '\n')f.close()

运行结果

 

完整代码

import requests
from lxml import etree
def get_page():url = 'https://www.chinaz.com/'headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:107.0) Gecko/20100101 Firefox/107.0",}res1 = requests.get(url, headers=headers, timeout=10)res = res1.content.decode('utf-8')  tree = etree.HTML(res)ul_list = tree.xpath('//*[@id="cz"]/div[2]/div[3]/div/div[1]/div[1]/div/div[2]/div[2]/div/ul/li')f = open('test', 'w', encoding ='utf-8')for l in ul_list:desc = l.xpath('./div/div[1]/a/h2/text()')[0]print(desc + '\n')f.write(str(desc) + '\n')f.close()
if __name__ == '__main__':get_page()



 四、网络安全小圈子

README.md · 书半生/网络安全知识体系-实战中心 - 码云 - 开源中国 (gitee.com)https://gitee.com/shubansheng/Treasure_knowledge/blob/master/README.md

GitHub - BLACKxZONE/Treasure_knowledgehttps://github.com/BLACKxZONE/Treasure_knowledge

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/14417.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Skywalking高级使用

Skywalking高级使用 RPC调用监控Mysql调用监控Skywalking常用插件获取追踪ID过滤指定的端点告警功能Skywalking原理Open Tracing介绍 RPC调用监控 Skywalking(6.5.0)支持的RPC框架有以下几种: (1) Dubbo 2.5.4 -> 2.6.0 (2) Dubbox 2.8.4 (3) Apache Dubbo 2.7.…

Windows mingw64 最简易 安装配置

其实挺简单一件事 很多教程都搞复杂了 自己写一个 只需要两步 1. 下载压缩包并解压 2. 配置环境变量 (1). GitHub 下载地址 Releases niXman/mingw-builds-binaries GitHub 如果GitHub下载太慢可以来这里加速 或者用地址2 GitHub Proxy 代理加速 (ghproxy.com) (2). 下…

Vue3的使用--002

Vue3包含vue2的语法,学习vue3就行。 前提要求, 安装大于node.js15.0。 创建Vue 项目 : npm init Vuelastest : 这一执行将会安装并执行create-vue, 他是Vue 官方的脚手架工具。你将会看到一些Typescript 和测试支持之类的可选功能提示&…

VTK STL 体积 表面积测量 最短路径 读取中文路径

目录 开发环境: vtkMassProperties 三、中文路径 数据读取 开发环境: 系统:Win10 VTK:8.2.0 Qt:5.12.4 一、结构化对象 体积 面积 vtkMassProperties VTK 计算体积和面积的主要类 vtkMassProperties vtkSm…

ArcGis Pro如何通过C#进行插件开发?

文章目录 0.引言1.开发工具准备2.VS(C#)创建ArcGIS Pro模块加载项3.编译并使用ArcGis Pro插件 0.引言 ArcGIS Pro插件(Add-ins)可以让用户更加容易的自定义和扩展ArcGIS Pro应用程序,它创建一系列自定义工具提供了一个…

[论文笔记] Gemini: A Computation-Centric Distributed Graph Processing System

Gemini: A Computation-Centric Distributed Graph Processing System Gemini: 以计算为中心的分布式图处理系统 [Paper] [Slides] [Code] OSDI’16 摘要 提出了 Gemini, 一个分布式图处理系统, 应用了多种针对计算性能的优化以在效率之上构建可扩展性. Gemini 采用: 稀疏-…

web3创业有哪些机会及具体案列(二)

目录 1. 去中心化金融(DeFi):2. 去中心化身份验证和数字身份:3. 去中心化市场和电子商务:4. 区块链游戏和虚拟资产:5. 数据隐私和安全:6. 去中心化社交媒体:7. 去中心化能源交易&…

通用二进制方式安装Mysql

一、去官网下载MySQL glibc版本 示例环境为CentOS 7.9版本,要安装的Mysql版本为5.7 1.选择版本下载到自己本地 下载地址:https://dev.mysql.com/downloads/mysql/ 2.将下载的tar包上传到自己的CentOS虚拟主机上 传输完成后,查看确认一下 …

【计算机网络】第 2 课 - 计算机网络的性能指标

欢迎来到博主 Apeiron 的博客,祝您旅程愉快 ! 时止则止,时行则行。动静不失其时,其道光明。 目录 1、缘起 2、性能指标 2.1、速率 2.2、带宽 2.3、吞吐量 2.4、时延 2.5、时延带宽积 2.6、往返时间 2.7、利用率 2.8、丢…

【5G PHY】5G控制资源集CORESET介绍

博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持! 博主链接 本人就职于国际知名终端厂商,负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作,目前牵头6G算力网络技术标准研究。 博客…

组合模式:如何设计实现支持递归遍历的文件系统目录树结构?

组合模式跟我们之前讲的面向对象设计中的“组合关系(通过组合来组装两个类)”,完全是两码事。这里讲的“组合模式”,主要是用来处理树形结构数据。这里的“数据”,你可以简单理解为一组对象集合,待会我们会…

JVM04-优化JVM内存分配以及内存持续上升问题和CPU过高问题排查

1-JVM内存分配 1.1-JVM内存分配性能问题 JVM内存分配不合理最直接的表现就是频繁的GC,这会导致上下文切换等性能问题,从而降低系统的吞吐量、增加系统的响应时间。因此,如果你在线上环境或性能测试时,发现频繁的GC,且…