速刷edurank(1)

python安全开发

python安全开发

  • python安全开发
  • 前言
  • 一、平台edu
  • 二、使用步骤
    • 1.引入库
    • 2.功能
    • **完整代码**
    • 完整代码
  • 总结


前言

目的:想快速的搜集edu的域名

一、平台edu

https://src.sjtu.edu.cn/rank/firm/0/?page=2

二、使用步骤

1.引入库

代码如下(示例):

Get_EduName.py

import requests //爬虫
from bs4 import BeautifulSoup //提取数据
from concurrent.futures import ThreadPoolExecutor, as_completed  //多进程
import csv //csv

2.功能

在这里插入图片描述

def get_edu_name(page):url = f'https://src.sjtu.edu.cn/rank/firm/0/?page={page}'try:print(f'正在获取第{page}页的数据...')response = requests.get(url)if response.status_code == 200:soup = BeautifulSoup(response.text, 'lxml')edu1 = soup.find_all('td', attrs={'class': 'am-text-center'})edu_names = []for td in edu1: //找到tdif td.a:  //找到a标签institution_name = td.a.get_text()edu_names.append(institution_name)return edu_nameselse:print(f'Failed to retrieve page {page}. Status code: {response.status_code}')return []except Exception as e:print(f'Failed to retrieve page {page}: {e}')return []

写入数据

def extract_unique_universities(filename):unique_universities = set()universities_list = []with open(filename, 'r', encoding='utf-8-sig') as f:reader = csv.reader(f)for row in reader:if row:  # 确保行不为空university_name = row[0].strip()  # 取第一列数据,并去除空格if university_name not in unique_universities:unique_universities.add(university_name)universities_list.append(university_name)return universities_list
if __name__ == '__main__':max_pages = 100  # 设置要获取的页面数edu_names = get_all_edu_names(max_pages)save_edu_names_to_csv(edu_names, 'edu.csv')print("学校名称已保存到 edu.csv 文件中。")filename = 'edu.csv'  # 替换为你的 CSV 文件路径universities = extract_unique_universities(filename)print("提取的大学数据:")for university in universities:print(university)with open('university.txt', 'a+', encoding='utf-8') as f:f.write(university + '\n')

完整代码

import requests
from bs4 import BeautifulSoup
from concurrent.futures import ThreadPoolExecutor, as_completed
import csvdef get_edu_name(page):url = f'https://src.sjtu.edu.cn/rank/firm/0/?page={page}'try:print(f'正在获取第{page}页的数据...')response = requests.get(url)if response.status_code == 200:soup = BeautifulSoup(response.text, 'lxml')edu1 = soup.find_all('td', attrs={'class': 'am-text-center'})edu_names = []for td in edu1:if td.a:institution_name = td.a.get_text()edu_names.append(institution_name)return edu_nameselse:print(f'Failed to retrieve page {page}. Status code: {response.status_code}')return []except Exception as e:print(f'Failed to retrieve page {page}: {e}')return []def get_all_edu_names(max_pages):all_edu_names = []with ThreadPoolExecutor() as executor:futures = [executor.submit(get_edu_name, page) for page in range(1, max_pages + 1)]for future in as_completed(futures):edu_names = future.result()all_edu_names.extend(edu_names)return all_edu_namesdef save_edu_names_to_csv(edu_names, filename):with open(filename, 'w', newline='', encoding='utf-8-sig') as f:writer = csv.writer(f)for name in edu_names:writer.writerow([name])def extract_unique_universities(filename):unique_universities = set()universities_list = []with open(filename, 'r', encoding='utf-8-sig') as f:reader = csv.reader(f)for row in reader:if row:  # 确保行不为空university_name = row[0].strip()  # 取第一列数据,并去除空格if university_name not in unique_universities:unique_universities.add(university_name)universities_list.append(university_name)return universities_list
if __name__ == '__main__':max_pages = 100  # 设置要获取的页面数edu_names = get_all_edu_names(max_pages)save_edu_names_to_csv(edu_names, 'edu.csv')print("学校名称已保存到 edu.csv 文件中。")filename = 'edu.csv'  # 替换为你的 CSV 文件路径universities = extract_unique_universities(filename)print("提取的大学数据:")for university in universities:print(university)with open('university.txt', 'a+', encoding='utf-8') as f:f.write(university + '\n')

Get_Edu_domain.py
原理从bing里面搜索关键字,提取网址,写入csv

完整代码

import requests
from bs4 import BeautifulSoup
import csv
import tldextract
import concurrent.futuresGet_Edu_domain.pyheaders = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:98.0) Gecko/20100101 Firefox/98.0','cookie': 'MUID=32957CB67A1A615722B972087B656099'
}university_list = []with open('university.txt', 'r', encoding='utf-8') as f:for line in f:university_list.append(line.strip().replace(' ', '+'))with open('university_results.csv', 'w', newline='', encoding='utf-8-sig') as csvfile:csvwriter = csv.writer(csvfile)csvwriter.writerow(['大学', '网址', '子域名'])  def process_site(site):url = f'https://www.bing.com/search?q=intitle%3a{site}&mkt=zh-CN&FPIG=0B6AED8B37BF44B78B8F58E6A949DB10&first=1&FORM=PERE'print(f"正在搜索: {site}")try:response = requests.get(url, headers=headers)print(f"状态码: {response.status_code}")response.encoding = 'utf-8'soup = BeautifulSoup(response.text, 'lxml')results = soup.find_all('h2')found_valid_result = Falsefor result in results:try:u = result.a.get('href')print(f"网址: {u}")# 提取子域名extracted = tldextract.extract(u)if extracted.subdomain:domain = f"{extracted.subdomain}.{extracted.domain}.{extracted.suffix}"if '.edu.cn' in domain or domain.endswith('.edu.cn'):csvwriter.writerow([site, u, domain]) found_valid_result = Truebreak  except Exception as e:print(f"提取网址时出错: {e}")if not found_valid_result:print("未找到有效的搜索结果。")csvwriter.writerow([site, '未找到有效结果', ''])  except requests.RequestException as e:print(f"请求失败: {e}")csvwriter.writerow([site, f"请求失败: {e}", ''])  except Exception as e:print(f"出错: {e}")csvwriter.writerow([site, f"出错: {e}", '']) with concurrent.futures.ThreadPoolExecutor() as executor:executor.map(process_site, university_list)

效果
在这里插入图片描述
可以使用这里的子域名写入到一个文件
可以使用subfinder,httpx,ksubdomain,

./subfinder -d baidu.com -silent|./ksubdomain -verify -silent|./httpx -title -content-length -status-code -o url.html -html

总结

可以批量打edu的域名,快速上分edu

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

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

相关文章

数学建模----滑翔伞伞翼面积的设计及运动状态描述

摘要 滑翔伞作为一项融合了挑战、冒险和刺激于一体的运动,近年来在全球范围内受到了广泛的关注。滑翔伞在救援、探险、体育、娱乐、环保和交通等领域的应用展现了其重要价值。然而,中国在滑翔伞领域尚未取得突破,缺乏全球影响力和竞争力。因此…

基于docker的prometheus+grafana+altermanager+prometheus-webhook-dingtalk钉钉报警

一、各软件功能简介 prometheus:Prometheus(是由go语言(golang)开发)是一套开源的监控&报警&时间序列数 据库的组合。主要优点:外部依赖安装使用超简单、系统集成 多等 grafana:Grafana 是一款采用 go 语言编写的开源应用&#xff0…

MySQL数据库-Windows部署MySQL环境

Windows部署MySQL环境​​​​​​ 一、下载mysql数据库 进入MySQL官方网站(MySQL :: MySQL DownloadsMySQL),随后按如下红框方式操作: ​ ​ ​ ​ 这里选择的是离线安装,第一个是在线安装 下载好安装包后开始…

基于Springboot的智慧养老中心管理系统

文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅 项目介绍 基于Springboot的智慧养老中心管理系统,…

YUM——简介、安装(Ubuntu22.04)

1、简介 YUM(Yellowdog Updater, Modified)是一个开源的命令行软件包管理工具,主要用于基于 RPM 包管理系统的 Linux 发行版,如 CentOS、Red Hat Enterprise Linux (RHEL) 和 Fedora。YUM 使用户能够轻松地安装、更新、删除和管理…

Linux 账号安全管理及应用

一、账号安全控制 1.系统账号清理 1.1 将非登录用户设置为无法登录 usermod -s /etc/nologin pkm #将名为pkm 用户的shell设为/sbin/nologin 用户 pkm 将无法登录 1.2 锁定长期不使用的账号 usermod -L 用户名 #锁定用户账号密码 usermod -U …

【C】Structure

参考摘抄学习来自: C 结构体C语言必学知识点 "结构体"详细解析!C 语言之结构体最全面总结C typedef 文章目录 1 定义2 初始化3 结构体大小的计算4 访问结构成员5 结构作为函数参数6 指向结构的指针7 结构体数组8 动态申请结构体 1 定义 它允…

RFID电子锁在物流货运智能锁控管理的创新方案

物流货运锁控的现实挑战 易损性:传统锁具易受物理破坏,无法抵御恶意撬锁。 低效率:依赖人工操作,开锁速度慢,影响作业效率。 高成本:钥匙的制作、管理和丢失替换成本高昂。 监控缺陷:缺乏实…

保障信息资产:ISO 27001信息安全管理体系的重要性

在当今数字化和全球化的时代,信息安全已经成为企业成功和持续发展的关键因素之一。随着信息技术的快速发展和互联网的普及,企业面临着越来越多的信息安全威胁和挑战,如数据泄露、网络攻击、恶意软件等。为了有效应对这些威胁,企业…

智能升级,监控无界——全新安全生产生态算法一体机上线

安全生产生态算法一体机 安全生产生态算法一体机是万物纵横推出的一款AI算法软硬一体生态产品,重点面向安全生产领域,采用BM1684强劲AI芯片,内置安全生产场景所需的多种专用AI算法,面向各场景的人员监控、规范作业、异常检测等应…

实现ubuntu的任务计划反弹shell

1.实验目的 使用Ubuntu定时任务反弹shell 2实验环境 ubuntu:ip地址:192.168.80.133 kali:ip地址:192.168.80.134 3.编写crontab计划任务 在ubuntu的系统中使用crontab -e命令编写计划任务 作用:是将一个交互式的…

Vue +Echarts 二维数组获取最大值和最小值以及索引

实现图例效果 获取最大值方法&#xff1a; maxSecond(array) {let max Number.MIN_SAFE_INTEGER;for (let i 0; i < array.length; i) {const secondElement parseInt(array[i][1]);if (secondElement > max) {max secondElement;}}return max;}, 获取最大值索引&…

【高性能服务器】select模型

&#x1f525;博客主页&#xff1a; 我要成为C领域大神&#x1f3a5;系列专栏&#xff1a;【C核心编程】 【计算机网络】 【Linux编程】 【操作系统】 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 本博客致力于知识分享&#xff0c;与更多的人进行学习交流 IO多路复用就是复用…

认识不-物联网“六域模型”有哪些有什么作用

如下参考源于苏州稳联授权可见认知域-感知域-网络域-应用域-管理域-安全域-物联网六域模型 苏州稳联 (iotrouter.cn) 认识物联网“六域模型”&#xff1a;构成与作用 “六域模型”是一个有效的框架。这个模型通过将物联网划分为六个相互关联的域&#xff0c;帮助我们更好地理…

Citrix替换:不只是功能拉齐,更是性能体验的超越

用户在选择Citrix替换方案时&#xff0c;除了关注架构和功能的全面性&#xff0c;也期待着国产桌面办公方案带来的惊喜。 深信服桌面云不仅在基础能力和功能上做到了全面对标Citrix&#xff0c;还在用户极为重视的安全、可靠性、智能监控与排障、信创生态等方面做到了全面超越…

如何用SRM管理供应商,轻松又高效?

在企业运营的日常里&#xff0c;你是否常常为那些繁杂的供应商信息而头疼&#xff1f;每当项目紧急需要某个物料时&#xff0c;你是否会为了寻找可靠的供应商而焦头烂额&#xff1f;更别提那些层出不穷的交货延期、质量问题&#xff0c;以及难以追踪的合同条款了。这些问题&…

基于AGX ORIN与FPGA K7实现PCIE高速数据通信/Orin与FPGA高速数据传输/XDMA在linux系统使用教程

因最近想学习AGX orin和FPGA实现数据高速通信&#xff0c;借此机会和大家一起学习AGX orin和FPGA 制作不易&#xff0c;记得三连哦&#xff0c;给我动力&#xff0c;持续更新&#xff01;&#xff01;&#xff01; 完整工程文件下载&#xff1a;AGX orin与FPGA实现PCIE完整…

通证经济重塑经济格局

在数字化转型的全球浪潮中&#xff0c;通证经济模式犹如一股新兴力量&#xff0c;以其独特的价值传递与共享机制&#xff0c;重塑着经济格局&#xff0c;引领我们步入数字经济的新纪元。 通证&#xff0c;作为这一模式的核心&#xff0c;不仅是权利与权益的数字化凭证&#xf…

C语言 | Leetcode C语言题解之第213题打家劫舍II

题目&#xff1a; 题解&#xff1a; int robRange(int* nums, int start, int end) {int first nums[start], second fmax(nums[start], nums[start 1]);for (int i start 2; i < end; i) {int temp second;second fmax(first nums[i], second);first temp;}retur…