如何处理"追溯" python中的错误?

时间:2017-08-21 15:46:08

标签: python

任何人都可以告诉我如何删除此 Traceback(最近一次调用最后一次): python中的错误。我正在使用python 2.7.9

查看代码。

import requests
import optparse

parser = optparse.OptionParser()

parser.add_option("-f", '--filename', action="store" ,dest="filee")

options, args = parser.parse_args()

file = options.filee


fopen = open(file, 'r')
for x in fopen.readlines():
    print "Checking for Clickjacking vulnerability\n"
    url = x.strip('\n')
    req = requests.get(url)
    try:
        print "[-]Target:" + url +  " Not vulnerable\n The targeted victim has %s header\n" % (req.headers['X-Frame-Options'])


    except Exception as e:
        print "[+] Target:" + url +" Vulnerable to clickjacking"

成功运行代码后,我在结尾>

时出现此错误
Traceback (most recent call last):
  File "C:\Python27\utkarsh3.py", line 17, in <module>
    req = requests.get(url)
  File "C:\Python27\lib\site-packages\requests\api.py", line 72, in get
    return request('get', url, params=params, **kwargs)
  File "C:\Python27\lib\site-packages\requests\api.py", line 58, in request
    return session.request(method=method, url=url, **kwargs)
  File "C:\Python27\lib\site-packages\requests\sessions.py", line 494, in request
    prep = self.prepare_request(req)
  File "C:\Python27\lib\site-packages\requests\sessions.py", line 437, in prepare_request
    hooks=merge_hooks(request.hooks, self.hooks),
  File "C:\Python27\lib\site-packages\requests\models.py", line 305, in prepare
    self.prepare_url(url, params)
  File "C:\Python27\lib\site-packages\requests\models.py", line 379, in prepare_url
    raise MissingSchema(error)
requests.exceptions.MissingSchema: Invalid URL '': No schema supplied. Perhaps you meant http://?

这让我非常恼火。我知道有很多人以前都在问这个问题。但我无法理解,所以我问。

请告诉我初学者如何处理这些错误?

1 个答案:

答案 0 :(得分:2)

以eli5方式,Traceback是程序在发生实际错误之前尝试执行的操作的日志。您的实际错误为requests.exceptions.MissingSchema

Invalid URL '': No schema supplied. Perhaps you meant http://?后面的行描述了确切的问题。

  File "C:\Python27\utkarsh3.py", line 17, in <module>
req = requests.get(url)

以上这些行描述了错误的开始位置。 所以,如果你去你的程序的第17行,你必须看到完全相同的行。

从这两件事中创建一个上下文,我得到的url是一个只有example.com而不是http://example.com的字符串或者那些行上的东西。

我只能推测你的代码可能是什么。但是,请随意提供您的代码片段以解释更多内容。

但是,希望这可以帮助您阅读未来的追溯。

Edit1:现在您已添加了代码段。尝试在url之前打印requests.get(url),看看您到底想要达到的目标。并且,如果你有正确的架构前缀。