速刷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,一经查实,立即删除!

相关文章

使用fifo IP核,给fifo写数据,当检测到ALMOST_EMPTY时,为什么不能立即赋值

这涉及到FIFO(先入先出缓冲器)的内部工作机制和时序考虑。让我详细解释为什么在检测到ALMOST_EMPTY信号时不能立即向FIFO写入数据。 ALMOST_EMPTY信号的特性: ALMOST_EMPTY是一个预警信号,表示FIFO中的数据量已经接近空。这个信号…

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

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

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

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

未来已来:期待GPT-5在人工智能领域的突破与创新

GPT-5 一年半后发布?对此你有何期待? IT之家6月22日消息,在美国达特茅斯工程学院周四公布的采访中,OpenAI首席技术官米拉穆拉蒂被问及GPT-5是否会在明年发布,给出了肯定答案并表示将在一年半后发布。此外,…

钉钉消息异常通知

钉钉消息异常通知 支持多线程 支持多进程 支持多人 支持所有人 from pprint import pprintimport requests import json import threading import multiprocessing from datetime import datetimeclass DingTalkAlert:def __init__(self, webhook_url, secretNone):self.webh…

sql查询慢的一种优化思路:尝试将多表查询转为单表查询

背景 接到一个报表优化的需求,该sql inner join了两张表,主表中数据大概是三千万,经测试,查询2023-07-01这一天的数据需要12秒,查询2023-07-01~2023-07-31 却只需要1.1秒,查询2024-07-01需要20分钟&#x…

Ubuntu安装PostgreSQL

Ubuntu(在线版) 更新软件源 sudo apt-get update 添加PostgreSQL官方数字签名 wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - 将地址添加到系统的软件包源列表中 echo "deb http://apt.postgresql.org/pub/repos/a…

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 定义 它允…

导入的Docker 镜像无名称和标签问题

解决办法 第一种 重命名 docker tag [镜像id] [新镜像名称]:[新镜像标签]第二种 规范导出 docker save -o xxxx.tar [镜像名称]:[镜像标签]使用镜像ID打包的话导致解压的出来的镜像没有名字

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

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

深入理解Java的面向对象编程

1. 什么是面向对象编程(OOP)? 面向对象编程是一种编程范式,它将程序中的数据与操作数据的方法组织为对象。每个对象都可以接收消息、处理数据以及发送消息给其他对象。在Java中,每个对象都是一个类的实例。 2. 核心概…

保障信息资产: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命令编写计划任务 作用:是将一个交互式的…

Mysql 左关联(LEFT JOIN)

在左关联(LEFT JOIN)操作中,关于大表和小表的连接顺序,通常建议将小表放在前面,大表放在后面。这种安排方式有助于提高查询效率,原因如下: 扫描效率:在SQL查询中,尤其是…