速刷edurank(1)

news2024/12/23 10:41:57

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: //找到td
                if td.a:  //找到a标签
                    institution_name = td.a.get_text()
                    edu_names.append(institution_name)
            return edu_names
        else:
            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 csv

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:
                if td.a:
                    institution_name = td.a.get_text()
                    edu_names.append(institution_name)
            return edu_names
        else:
            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_names

def 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.py

headers = {
    '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 = False

            for 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 = True
                            break  

                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.coloradmin.cn/o/1898915.html

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

相关文章

序列化Serializable

一、传输对象的方式 将对象从内存传输到磁盘进行保存,或者进行网络传输,有两种方式: 实现Serializable接口,直接传输对象转成json字符串后,进行字符串传输 二、直接传输对象 implements Serializable Data Equal…

50岁单身女人的中等生活标准是什么?

对女人来说,50岁正是更年期,可以说是已经进入老龄行列,情绪难免不稳定。面对社会上对中老年人的看法,心中难免会有些失落。那么50岁以后的女人,一般希望拥有一个什么样的生活呢? 首先是财务独立&#xff0c…

Day44:LeedCode 188.买卖股票的最佳时机IV 309.最佳买卖股票时机含冷冻期 714.买卖股票的最佳时机含手续费

188. 买卖股票的最佳时机 IV 给你一个整数数组 prices 和一个整数 k ,其中 prices[i] 是某支给定的股票在第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你最多可以完成 k 笔交易。也就是说,你最多可以买 k 次,卖 k 次。 注意&…

【数据分享】2002-2020年全球逐日地表土壤水分栅格数据(免费获取)

土壤水分是陆地水循环中的重要状态变量,在陆-气相互作用研究、区域水文过程及水资源管理等研究领域具有重要作用,该数据被广泛应用于各项研究。 本次我们分享的是2002-2020年全球范围的36km分辨率逐日地表土壤水分栅格数据!数据来源于国家青…

c++习题05-斐波那契数列

目录 一,问题 二,思路 三,代码 一,问题 二,思路 根据题目,可以自己列出斐波那契数列(前四个)如下: 通过列出来的值,可以发现,前两个都是1&…

信创-系统架构师认证

随着国家对信息技术自主创新的战略重视程度不断提升,信创产业迎来前所未有的发展机遇。未来几年内,信创产业将呈现市场规模扩大、技术创新加速、产业链完善和国产化替代加速的趋势。信创人才培养对于推动产业发展具有重要意义。应加强高校教育、建立人才…

功能测试常用的测试方法

在软件测试过程中,功能测试是最基础、最核心,也是最主要的,那么功能测试中常用的测试方法你了解吗? 第一、什么是功能测试 功能测试(Functional Testing),又称黑盒测试(Black-box Te…

中国软件评测中心最新报告:文心大模型技术、产品、应用全面领跑

近日,工业和信息化部直属国家一级科研事业单位中国软件评测中心发布《人工智能大语言模型技术发展研究报告(2024年)》,总结梳理大语言模型技术能力进展和应用情况,肯定国产大模型的发展成果,为产业界选用大…

ingress-nginx控制器证书不会自动更新问题

好久没更新了,正好今天遇到了一个很有意思的问题,在这里给大家分享下,同时也做下记录。 背景 最近想做个实验,当k8s集群中secret更新后,ingress-nginx控制器会不会自动加载新的证书。我用通义千问搜了下,…

对SRS媒体服务器进行漏洞扫描时,SRS的API模块会出现漏洞,如何修补这些漏洞的简单方法

目录 一、引言 1、srs介绍 2、媒体流介绍 3、应用场景 二、SRS的http_api介绍、及漏洞 1、概述 2、http_api模块的作用 (1)提供HTTP API服务 (2)管理和监控SRS服务器 (3)自定义开发 三、漏洞扫描…

Java语言+后端+前端Vue,ElementUI 数字化产科管理平台 产科电子病历系统源码

Java语言后端前端Vue,ElementUI 数字化产科管理平台 产科电子病历系统源码 Java开发的数字化产科管理系统,已在多家医院实施,支持直接部署。系统涵盖孕产全程,包括门诊、住院、统计和移动服务,整合高危管理、智能提醒、档案追踪等…

【T+】畅捷通T+产品,将原财务报表中的模板转换到财务报表菜单下。

【问题描述】 畅捷通T3产品中账套使用行业性质是【新会计准测制度】升级到畅捷通T产品, 行业性质默认为【2001年企业会计制度】, 但是升级成功后,账套的财务报表下没有对应报表模板,需要手工编辑,太费劲了。 并且在T产…

mysql 字符集(character set)和排序规则(collation)

文章目录 概念1、字符集1.1、举例1.2、常见字符集 utf8 和 utf8mb4 区别1.3、字符集 使用 2、排序规则2.1、举例2.2、常见的排序规则 utf8mb4_bin 、utf8mb4_general_ci、utf8mb4_unicode_ci2.3、使用 概念 在 MySQL 中,字符集(character set&#xff0…

STM32基础知识

一.STM32概述 第一款STM32单片机发布的时间为2007年6月11日。由意法半导体(ST)公司推出,是STM32系列中的首款产品,具体型号为STM32F1,它是一款基于Cortex-M内核的32位微控制器(MCU)。 STM32F1…

广东这家非标自动化公司居然2台工作站20个设计同时用?

在当今快速发展的制造业中,非标自动化公司凭借其独特的定制化服务,正在逐步改变着传统的生产方式。在日益复杂和高度专业化的非标自动化设计领域,图形工作站的重要性不言而喻。设计师们需要强大的计算能力和高效的运行环境来支持他们的创意工…

短视频文案提取神器怎么提取抖音视频文案!

很多编导以及视频内容创作者为了提高自己的工作效率还会使用视频转文字提取神器,我们都清楚短视频领域每个平台人群熟悉都有所不同,在分发内容的时候也会调整内容已符合平台属性。 短视频文案提取神器怎么提取抖音视频文案 短视频常见的平台有抖音、西瓜…

分享超级实用的3款AI工具,让工作效率轻松翻倍

Hey,职场小伙伴们!每天被堆积如山的工作压得喘不过气?加班成了日常,效率却不见提高?别急,今天就让我来给你们揭秘3款AI神器,它们将是你职场上的得力助手,让你的工作效率轻松翻倍&…

Web3 ETF的主要功能

Web3 ETF的主要功能可以概括为以下几点,Web3 ETF仍是一项新兴投资产品,其长期表现仍存在不确定性。投资者在投资Web3 ETF之前应仔细研究相关风险,并做好充分的风险评估。北京木奇移动技术有限公司,专业的软件外包开发公司&#xf…

4-google::protobuf命名空间下常用的C++ API----text_format.h

#include <google/protobuf/text_format.h> namespace google::protobuf 用于以人类可读的基于文本的格式打印和解析协议消息的工具类。 TextFormat类 这个类实现协议缓冲文本格式。 以文本格式打印和解析协议消息对于调试和人工编辑消息非常有用。 这个类实际上是一个只…

跟《经济学人》学英文:2024年06月01日这期 The side-effects of the TikTok tussle

The side-effects of the TikTok tussle tussle&#xff1a;美 [ˈtəsəl] 激烈扭打&#xff1b;争夺 注意发音 side-effects&#xff1a;副作用&#xff1b;&#xff08;side-effect的复数&#xff09; As the app’s future hangs in the balance, the ramifications of …