有一篇回答说是网址变化了。
他给出的答案是:
问题不在于发送请求,似乎virustotal完全改变了网址
https://www.virustotal.com/ui/domains/{domain}/subdomains
这个导致了这个错误
在源文件中把上面地址,改为以下地址即可
https://www.virustotal.com/gui/domain/{{dommain}}/details
但是,照着这样做并不行。依旧显示下面这个错误。
Process Virustotal-9:Traceback (most recent call last): File "/usr/lib/python3.9/multiprocessing/process.py", line 315, in _bootstrap self.run() File "/root/Sublist3r-master/sublist3r.py", line 268, in run domain_list = self.enumerate() File "/root/Sublist3r-master/sublist3r.py", line 700, in enumerate resp = json.loads(resp) File "/usr/lib/python3.9/json/__init__.py", line 346, in loads return _default_decoder.decode(s) File "/usr/lib/python3.9/json/decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "/usr/lib/python3.9/json/decoder.py", line 355, in raw_decode raise JSONDecodeError("Expecting value", s, err.value) from Nonejson.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)/root/Sublist3r-master/sublist3r.py:614: DeprecationWarning: please use dns.resolver.Resolver.resolve() instead ip = Resolver.query(host, 'A')[0].to_text()Process GoogleEnum-4:Traceback于是我顺着这个网站去查找:发现确实是网址发生了变化,用老网址压根就没法打开网站。直接复制下面的新网址:https://www.virustotal.com/gui/domain/{{dommain}}/details打开的是这样的一个页面。(这个页面是我们想要的)
注意他左上角的那个搜索框。有一点爬虫经验的人可能不由自主的就会干这样的事:
随便输入一个网址,观察链接的变化。
到这基本上就可以了解这是在干什么了:这个Sublist3r架构估计借用了virustotal这个网站来查找信息。找到向这个网址发送请求的源码程序。(如下)
基本可以断定:就是网址在组合过程中发生了错误。 把def __init__整个程序段换成下面的就可发挥作用。
def __init__(self, domain, subdomains=None, q=None, silent=False, verbose=True): subdomains = subdomains or [] base_url = 'https://www.virustotal.com/gui/domain/{domain}/details' self.engine_name = "Virustotal" self.q = q super(Virustotal, self).__init__(base_url, self.engine_name, domain, subdomains, q=q, silent=silent, verbose=verbose) self.url = self.base_url.format(domain=self.domain) return
结果测试:
输入:
sudo ./sublist3r.py -d qq.com -t 10 -o qq.com会发现依然有错误,这个原因还没有查明是什么回事(有可能是网页返回内容解析的问题)。但是等一会这个就会显示出查询结果。(等的时间比较长,因为查询耗时很长。)
发现出现了我们想要的结果。