爬虫抓取whatweb接口
前言:
之前一直想抓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()
两个功能,一个单检测,一个批量导入进行检测。
测试图如下:
转载请声明:来自422926799.github.com
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。
文章标题:爬虫抓取whatweb接口
本文作者:九世
发布时间:2018-08-08, 20:34:08
最后更新:2019-04-19, 20:36:16
原始链接:http://jiushill.github.io/posts/6aba04f9.html版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。