【网络攻防技术】实验一——域名信息收集

一、实验要求

本次实验主要考察大家的编程能力及子域名的信息收集方法,在文件 夹“Lab1_code”提供了使用 Bing 搜索引擎的域名收集功能。请对该 代码进行扩展,使其可支持百度搜索引擎的域名收集功能。需要实现 如下功能:

  1. 支持百度搜索引擎的域名提取,其中从百度搜索引擎提取的域名 需为真实域名,而非百度的域名跳转链接;
  2. 可扩充其他功能,比如域名所在的标题等信息。

二、实验步骤

  1. 导入模块,分别用来请求网页、处理获取的到的网页源码数据、用于处理url
import requests                          #用于请求网页
from bs4 import BeautifulSoup            #用于处理获取的到的网页源码数据
from urllib.parse import urlparse        #用于处理url
  1. 定义采用百度搜索引擎,同时定义空列表、请求头与请求url
def baidu_search():Subdomain = []           #定义一个空列表用于存储收集到的子域名#定义请求头,绕过反爬机制hearders = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.63 Safari/537.36 Edg/93.0.961.38','Accept': '*/*',  'referer':'https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd=site%3Apku.edu.cn&fenlei=256&oq=site%253Awechat.com&rsv_pq=d3dc168d0016c859&rsv_t=09c89Z6QKcJ4xzJZrwCCrEG%2BhqUFqgggnvrkWjvfq5N%2Bqk8ZXAviJT3HLZY&rqlang=cn&rsv_enter=0&rsv_dl=tb&rsv_btype=t&inputT=13893&rsv_sug3=21&rsv_sug4=15260','cookie':'BAIDUID=9AAFB781E7A495630A3E99603C647298:FG=1; BIDUPSID=7C9932C0E0306D481FA23A4047DAC370; PSTM=1572779713; __yjs_duid=1_26c1cd348283567d4c94df518bbb60851624975916759; BD_UPN=12314753; BDORZ=B490B5EBF6F3CD402E515D22BCDA1598; H_PS_PSSID=34443_34380_34144_31254_34004_34524_34585_34092_34106_26350_34557; delPer=0; BD_CK_SAM=1; PSINO=1; H_PS_645EC=09c89Z6QKcJ4xzJZrwCCrEG%2BhqUFqgggnvrkWjvfq5N%2Bqk8ZXAviJT3HLZY; BA_HECTOR=81a18ka584012hakqq1gjk7fi0r; BDSVRTM=10; WWW_ST=1631198807201'}#定义请求urlurl = "https://www.baidu.com//s?ie=utf-8&mod=1&isbd=1&isid=d3dc168d0016c859&ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd=site%3Apku.edu.cn&fenlei=256&oq=site%253Awechat.com&rsv_pq=d3dc168d0016c859&rsv_t=09c89Z6QKcJ4xzJZrwCCrEG%2BhqUFqgggnvrkWjvfq5N%2Bqk8ZXAviJT3HLZY&rqlang=cn&rsv_enter=0&rsv_dl=tb&rsv_btype=t&inputT=13893&rsv_sug3=21&rsv_sug4=15260&bs=site%3Awechat.com&rsv_sid=undefined&_ss=1&clist=&hsug=&f4s=1&csor=15&_cr1=33613"resp = requests.get(url,headers=hearders)           #访问url,获取网页源码
  1. 创建BeautifulSoup对象,使用find_all()查找源码中所有返回网址信息的内容
 soup = BeautifulSoup(resp.content,'html.parser')    #创建一个BeautifulSoup对象,第一个参数是网页源码,第二个参数是Beautiful Soup 使用的 HTML 解析器,job_bt = soup.find_all("div",class_="result")                        #find_all()查找源码中所有返回网址信息的内容
  1. 查找域名并存入域名表
    for i in job_bt:div = i.find("div",class_="f13")   #进入有域名的最外面的标签a_target = div.find("a",class_="c-showurl c-color-gray")  #进入含有域名的标签中link = a_target.text       #找到网址原本的域名name=i.h3.a.string    #查a标签的string#复原原本的域名link = str("http" + "://" + link)abstract = i.find("div",class_="c-abstract").text  #获取描述domain = link+"\t"+name+"\n"+"\t"+abstractif domain in Subdomain:              #如果解析后的domain存在于Subdomain中则跳过,否则将domain存入子域名表中passelse:Subdomain.append(domain)print(domain)
  1. 域名收集结果(采用pku.edu.cn作为顶级域名)
    在这里插入图片描述


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部