发布于2022年10月14日3年前 之前一直想抓whatweb的接口。但是明明写的没有毛病,就是抓不了今天不死心的在写了一次。发现了问题的所在 正文: 什么是whatweb? 什么是WhatWeb? WhatWeb识别网站。它的目标是回答“这是什么网站?”的问题。WhatWeb可识别Web技术,包括内容管理系统(CMS),博客平台,统计/分析包,JavaScript库,Web服务器和嵌入式设备。WhatWeb拥有超过1700个插件,每个插件都能识别不同的东西。WhatWeb还标识版本号,电子邮件地址,帐户ID,Web框架模块,SQL错误等。 WhatWeb可以隐秘,快速,或彻底但缓慢。WhatWeb支持攻击级别来控制速度和可靠性之间的权衡。当您在浏览器中访问网站时,该交易包含许多关于Web技术为该网站提供支持的提示。有时,单个网页访问包含足够的信息来识别网站,但如果没有,WhatWeb可以进一步询问网站。默认的攻击级别称为“隐身”,速度最快,只需要一个网站的HTTP请求。这适用于扫描公共网站。开发了更积极的模式用于渗透测试。 大多数WhatWeb插件都是彻底的,并且可以识别从微妙到显而易见的一系列线索。例如,大多数WordPress网站可以通过元HTML标签识别,例如'',但少数WordPress网站删除了这个识别标签,但这并不妨碍WhatWeb。WordPress WhatWeb插件有超过15个测试,包括检查favicon,默认安装文件,登录页面,以及检查相对链接中的“/ wp-content /”。 whatweb在线检测地址:https://www.whatweb.net/ 基本操作抓包: 从图中可以看见请求参数为target 然后正常的写一个headers,然后用requests进行post请求应该就是这样吧= =很遗憾的是,这样子什么也不会返回。后来我看了一下控制台才发现原因。 图中的意思是,没有Console和Content-length头拒绝进行识别,后面抱着半信半疑的进行了测试发现居然可以了 代码: #-*-coding:'utf-8'-*- #name:九世 #time:2018-8-8-20:58 import requests from bs4 import BeautifulSoup def whatweb(): banner=''' ____ __.__.__ .__ | |/ _|__| | | | __ _______ | < | | | | | | | \__ \ | | \| | |_| |_| | // __ \_ |____|__ \__|____/____/____/(____ / \/ \/ ''' print(banner) user=input('Domain name to be querying:') headers={'user-agent':'User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.84 Safari/537.36', 'Content-length':'20', 'Connection':'keep-alive'} data={'target': '{}'.format(user)} url='https://www.whatweb.net/' reqts=requests.post(url=url,headers=headers,data=data) dw=BeautifulSoup(reqts.text,'html.parser') for p in dw.find_all('pre'): print(p.get_text()) def jy2(): banner = ''' ____ __.__.__ .__ | |/ _|__| | | | __ _______ | < | | | | | | | \__ \ | | \| | |_| |_| | // __ \_ |____|__ \__|____/____/____/(____ / \/ \/ ''' print(banner) user = input('file:') dk=open('{}'.format(user),'r') for r in dk.readlines(): qc="".join(r.split('\n')) headers = { 'user-agent': 'User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.84 Safari/537.36', 'Content-length': '20', 'Connection': 'keep-alive'} data = {'target': '{}'.format(qc)} url = 'https://www.whatweb.net/' reqts = requests.post(url=url, headers=headers, data=data) dw = BeautifulSoup(reqts.text, 'html.parser') for p in dw.find_all('pre'): print(p.get_text()) print('[1] 单个域名') print('[2] 批量导入') xw=input('xz=>:') if xw=='1': whatweb() elif xw=='2': jy2() 两个功能,一个单检测,一个批量导入进行检测。 测试图如下:
创建帐户或登录后发表意见