爬取目标网站的域名和子域名【网站子域扫描工具01】

使用 Python 的 requests 库发送 HTTP 请求,并使用 Beautiful Soup或者正则表达式来解析响应,从中提取出域名和子域名信息。

1.简单示例(Beautiful Soup)

这是一个简单的示例代码,演示如何使用 requests 和 BeautifulSoup 来获取网页中的链接:
下面是带有注释的代码,解释了每一步具体在做什么:

import requests  # 导入发送 HTTP 请求的库
from bs4 import BeautifulSoup  # 导入用于解析 HTML 的库# 定义一个函数,用于获取目标网站的子域名
def get_subdomains(url):# 发送一个 GET 请求到目标网站,并获取响应内容response = requests.get(url)# 使用 BeautifulSoup 解析响应的 HTML 内容soup = BeautifulSoup(response.text, 'html.parser')subdomains = set()  # 创建一个集合,用于存储提取出的子域名# 遍历所有带有 href 属性的链接for link in soup.find_all('a'):href = link.get('href')  # 获取链接的地址if href and href.startswith('http'):  # 如果链接以 http 开头(避免处理相对链接)domain = href.split('/')[2]  # 提取链接中的域名部分作为子域名subdomains.add(domain)  # 将提取到的子域名加入集合中return subdomains  # 返回提取到的子域名集合target_url = 'http://www.baidu.com'  # 设置目标网站的 URL
subdomains = get_subdomains(target_url)  # 调用函数获取子域名
print(subdomains)  # 打印提取到的子域名集合

在这个示例中,我们首先发送了一个 GET 请求到目标网站,然后用 BeautifulSoup 解析响应的 HTML 内容,提取出所有带有 href 属性的链接,并从中提取出域名部分作为子域名。最后将提取到的子域名放入集合中并返回。

2.简单示例(正则表达式)

以下是一个简单的示例代码:

import requests
import redef get_subdomains(url):response = requests.get(url)  # 发送GET请求获取网页内容html_content = response.text  # 获取网页HTML内容# 使用正则表达式从HTML内容中提取子域名subdomains = re.findall(r'(https?://\w+\.\w+\.\w+)', html_content)return subdomainstarget_url = 'http://www.baidu.com'
subdomains = get_subdomains(target_url)
print(subdomains)

在这个示例中,我们使用了requests库发送了一个GET请求到目标网站,并获取了网页的HTML内容。接着,我们使用了正则表达式来从HTML内容中提取出子域名。

3.小结

这只是一个简单的示例,实际情况可能更加复杂,需要考虑不同网页结构、链接格式等问题。

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

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

相关文章

【基础数据结构】字符串

一、字符串输入 1.scanf("%s",str);分隔符为空格、制表符、回车 2.fgets(str,10,stdin);10为字符串char str[10]长度,可以读取空格字符的字符串,10代表最大读取长度,最多读取9个字符,这个函数自动在读取到换行符停止&…

【Java万花筒】Java安全卫士:从密码学到Web应用攻击

Java安全锦囊:从Web应用攻击到加密算法,助你建立强固的开发堡垒 前言 在当今数字化时代,安全性至关重要,特别是对于Java开发者而言。本文将深入探讨Java安全与加密领域的关键库和技术,包括Bouncy Castle、Jasypt、Ke…

网络协议与攻击模拟_05TCP协议

一、传输层知识回顾 1、传输层的功能 定义应用层协议数据报文的端口号,流量控制对原始数据进行分段处理 2、传输层提供的服务 传输连接服务数据传输服务、流量控制、差错控制、序列控制 3、传输层的协议 面向连接的传输协议…

Qt6入门教程 5:添加资源和应用程序图标

目录 一.Qt资源系统(Qt Resource System) 1.Resource Collection Files(.qrc) 2.External Binary Resources 3.Compiled-In Resources 4.Resource Compiler (rcc) 5.在程序中使用资源 二.添加.qrc文件 1.添加.qrc 2.编辑…

AI剪辑助手:轻松剪辑专注创意,视频批量AI智剪的方法

随着科技的飞速发展,人工智能(AI)在许多领域都展现出了强大的能力。在视频剪辑领域,AI剪辑助手的出现,给内容创作者带来了前所未有的便利。它不仅能快速、高效地完成视频剪辑工作,还能释放创造力。今天一起…

【HarmonyOS】网络数据请求连接与数据持久化操作

从今天开始,博主将开设一门新的专栏用来讲解市面上比较热门的技术 “鸿蒙开发”,对于刚接触这项技术的小伙伴在学习鸿蒙开发之前,有必要先了解一下鸿蒙,从你的角度来讲,你认为什么是鸿蒙呢?它出现的意义又是…

【SpringBoot实战专题】「开发实战系列」深入迁出探索剖析SpringBoot服务容器特性的利器之Actuator(Web端点)

深入迁出探索剖析SpringBoot服务容器特性的利器之Actuator 内容简介内容大纲Actuator Web端点洞察应用程序内部状况的关键Actuator提供了13个端点启用ActuatorMaven依赖Gradle依赖 Actuator透视组件装配过程获得Bean装配报告(/beans)Bean属性概览Bean报告…

目标跟踪算法的目标丢失与遮挡处理 - 注意力机制

目标跟踪算法在处理目标遮挡和丢失情况时,采用了多种技术和策略。这些技术主要集中在提高算法的鲁棒性和适应性上,使其能够在复杂环境中有效跟踪目标。以下是一些常见的处理方法: 多模型融合:通过结合多个跟踪模型或特征表示&…

Linux安装texlivetexstudio

linux下写paper神器,简单好用,装就完了,不要多问 一、安装Texlive texlive镜像下载,传送门。这里我们选择texlive2023-20230313.iso下载。cd到下载目录,挂载镜像sudo mount -o loop texlive2023-20230313.iso /mnt #…

数据脱敏(一) 基本概念

定义 数据脱敏,是对敏感数据进行变形处理,其目的是保护隐私数据等信息的安全。也称为数据漂白、数据去隐私化或数据变形,是一种技术机制,用于在给定的规则、策略下对敏感数据进行变换、修改,以隐藏敏感信息。数据脱敏的…

如何提升演讲能力

强大输入体系 固定时间进行同领域阅读,类似1万小时定律 提升输出能力 输出写作时,梳理你的业务逻辑,倒逼输入,遇到困难时输出,知识体系会更加完善 心流状态 写提纲一、二、三,提示整个链路 故事化 学…

常用的Docker命令

以下是一些常用的Docker命令&#xff1a; 镜像相关命令&#xff1a; 搜索镜像&#xff1a;docker search <镜像名称>拉取镜像&#xff1a;docker pull <镜像名称>列出本地镜像&#xff1a;docker images删除本地镜像&#xff1a;docker rmi <镜像ID> 容器相…

centos docker-compose安装教程-2024最新版 亲测可用

目录 长时间不安装,生疏了,再次记录下 1.下载 2.修改名称 3.提权 4.测试验证 长时间不安装,生疏了,再次记录下 1.下载 官网地址 docker-compose官网地址&#xff1a;https://docs.docker.com/compose/compose-file/compose-file-v3/ #进入目录 cd /usr/local/bin#下载 wg…

大数据学习(32)hive优化方法总结

&&大数据学习&& &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 承认自己的无知&#xff0c;乃是开启智慧的大门 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4dd;支持一下博主哦&#x1f91…

js解构方式

//这两种写法哪个更好 const { signInfo: { isdist, signType } {} } data || {}; const { signInfo: { isdist, signType }} data;这两种写法都是解构赋值的方式&#xff0c;用于从对象中提取嵌套属性。它们的区别在于当data为undefined或者null时的行为不同。 第一种写法…

xtu oj 1251 Colombian Number

题目描述 对于正整数n,不存在整数k,使得n等于k加上k的数码累加和&#xff0c;我们称这样的数是哥伦比亚数或者自我数。 比如 11就不是一个哥伦比亚数&#xff0c;因为10加上10的数码累加和1等于11;而20则是一个哥伦比亚数。 输入 第一行是一个整数K(K≤10,000)&#xff0c;表…

NI PXIe-6386国产替代,8路AI(16位,14 MS/s/ch),2路A​O,24路DIO,PXI多功能I/O模块

PXIe-6386 PXIe&#xff0c;8路AI&#xff08;16位&#xff0c;14 MS/s/ch&#xff09;&#xff0c;2路A​O&#xff0c;24路DIO&#xff0c;PXI多功能I/O模块 PXIe-6386是一款同步采样的多功能DAQ设备。该模块提供了模拟 I/O、数字I/O、四个32位计数器和模拟和数字触发。板载N…

每日一练 | 华为认证真题练习Day164

1、当两台BGP邻居协商的HOLD Time参数为0时&#xff0c;则不发送Keeplive报文。 A. 正确 B. 错误 2、ospf路由协议中&#xff0c;bandwidth-reference命令的单位是mbps。 A. 正确 B. 错误 3、在OSPF广播或者NBMA网络类型中&#xff0c;ROUTER PRIORITY大的设备不一定会成为…

C++排序算法概览

1. 冒泡排序 (1) 基本思路 冒泡排序是一种简单的、但效率极低的排序算法&#xff0c;基本思路是重复地遍历待排序的序列&#xff0c;通过相邻元素的比较和交换&#xff0c;将较大&#xff08;或较小&#xff09;的元素逐步"冒泡"到右侧&#xff08;或左侧&#xff0…

Qat++,轻量级开源C++ Web框架

目录 一.简介 二.编译Oat 1.环境 2.编译/安装 三.试用 1.创建一个 CMake 项目 2.自定义客户端请求响应 3.将请求Router到服务器 4.用浏览器验证 一.简介 Oat是一个面向C的现代Web框架 官网地址&#xff1a;https://oatpp.io github地址&#xff1a;https://github.co…