前言
本篇博文是 《Selenium IDE 自动化实战案例》 系列的第四篇博文,主要内容是使用 requests 库来获取情报星球社区中的每日情报及安全资讯,并通过 XPATH 语法筛选出自己需要的内容,最后设置机器人定时推送,往期系列文章请访问博主的 自动化实战案例 专栏,博文中的所有代码全部收集在博主的 GitHub 仓库 中;
严正声明:本博文所讨论的技术仅用于研究学习,任何个人、团体、组织不得用于非法目的,违法犯罪必将受到法律的严厉制裁。
展示


实现
根据自己的需要获取页面内容,这里我们以获取漏洞情报、情报精选和安全资讯为例。

通过观察页面元素,发现我们需要获取的内容刚好在这三个 table 里面,因此,我们先通过 XPATH 语法获取到这些
标签,代码如下所示:
detail_resp = requests.get(detail_url)
detail_html = etree.HTML(detail_resp.text)
tables = detail_html.xpath('//*[@id="detail-box-view"]/div/div/table')
漏洞情报获取
先通过 F12 查看我们需要获取内容的页面元素:

根据 DOM 元素编写相应的 XPATH 语法并进行验证:

由于标题里用的是
元素,而内容里用的是
元素,因此可以使用符号 * 来匹配任何元素节点。

同时出现了 标签,但是其 text 内容包含了 URL,因此可以不用去获取其 href 属性,代码如下所示:
table0 = tables[0]
trs0 = table0.xpath('tbody/tr')
for tr in trs0:
print("[1]", tr.xpath('*/text() | */a/@href'))
print("[2]", tr.xpath('.//text()'))
在上述代码中,[1] 是从 href 属性中获取的 URL,而 [2] 则是通过文本匹配进行获取,运行结果如下所示:

情报精选获取
先分析一下这一模块的页面元素:

发现与漏洞情报的页面元素类似,因此直接构造代码如下所示:
table1 = tables[1]
trs1 = table1.xpath('tbody/tr')
for tr in trs1:
if first:
first = False
continue
lst = tr.xpath('.//text()')
print(lst)
运行结果:

安全资讯获取
虽然这个 table 与之前的看着有点不太一样,但是也可以通过 .//text() 去匹配其中的内容:

代码如下所示:
table2 = tables[2]
trs2 = table2.xpath('tbody/tr')
for tr in trs2:
lst = tr.xpath('.//text()')
print(lst)
运行结果:

后记
通过使用 requests 库,我们成功地获取到了情报星球社区中的每日情报及安全资讯详情页,再继续分析其中的页面元素并且使用 XPATH 语法筛选出自己需要的内容,最后设置机器人定时推送相关内容。
文中每日情报及安全资讯内容来自于 情报星球 社区。
以上就是 时刻关注网络安全,机器人推送每日情报及安全资讯 的所有内容了,希望本篇博文对大家有所帮助!
严正声明:本博文所讨论的技术仅用于研究学习,任何个人、团体、组织不得用于非法目的,违法犯罪必将受到法律的严厉制裁。
📝 上篇精讲:(三)筛选活动中点赞数量 TOP5 的作品
💖 我是 𝓼𝓲𝓭𝓲𝓸𝓽,期待你的关注,创作不易,请多多支持;
👍 公众号:sidiot的技术驿站;
🔥 系列专栏:Selenium IDE 自动化实战案例
相关推荐
通过多种技术可以优化函数性能,包括:1.内存管理,使用内存池和智能指针管理对象生命周期;2.选择合适的容器类型优化内存访问时间;3.使用高效算法减少执行时间;4.代码优化避免不必要的循环和分支,提取重复代码;5.使用内联汇编代码优化关键部分。 在 C++ 编程中优化函数性能 在 C++ 编程中,优化函数性能可以显著提高应用程序的整体性能。可以通过多种技术来优化函数,包括: 内存管理 使用内存池分配
Golang辅助方案:提升开发效率的利器 在当今快节奏的软件开发领域,开发效率一直是程序员们关注的重点之一。无论是小型项目还是大型项目,提高开发效率都是提升工作效果的重要途径。而作为一门专注于简洁、高效、并发编程的语言,Golang(Go语言)不仅在性能上有着优势,同时也有着许多辅助方案来帮助开发者提升开发效率。在本文中,我们将介绍一些Golang的辅助方案,具体代码示例将帮助读者更好地理解如何利
1. Memcached 简介 php memcached扩展入门指南由php小编子墨精心编写,旨在帮助初学者快速掌握memcached在php项目中的应用。该指南详细介绍了如何利用memcached实现数据缓存,提升网站性能,让读者轻松了解memcached的基本原理和使用方法。通过本指南,读者能够快速上手并有效利用memcached提升php项目的性能表现,为网站的用户体验和性能优化提供有力支
java选择器有:1、switch语句;2、if-else语句;3、switch表达式;4、三目运算符。详细介绍:1、switch语句,这是Java中最常用的选择器,它允许根据一个变量的值来选择执行不同的代码块;2、if-else语句,这是另一种常见的选择器,用于根据条件执行不同的代码块;3、switch表达式,这是Java 14中引入的新特性,它允许在switch语句等等。 本教程操作系统:wi
Spring Cloud框架提供了丰富的功能和工具,用于实现Java微服务。作为Java生态系统中广受欢迎的框架,Spring Cloud为构建微服务架构提供了一系列便利的工具和特性。以下是其中的18个关键功能和工具: 1 服务发现 服务发现是微服务架构中的重要组件,支持每个服务在一个或多个服务器上运行多个实例。Spring Cloud提供了服务发现功能,使得服务能够向注册中心(例如Netflix
回到顶部
| |