我发现有很多链接列表进行状态检查,我的片段如下:Python字典键错误无法解决
link = 'http://xyz'
proxyDict = { "http" : "ip:80", "https" : "https://ip:443"}
r = requests.get(link, allow_redirects=False, verify=False)
http_status = r.status_code
print (r.headers)
# check the status and react accordingly
if http_status == 200 and r.headers['content-length'] == "0":
print ('Link Alive - NO content'+';'+str(http_status)+';'+link, file = log)
elif http_status == 200 and "text/html" in r.headers['content-type']:
print ('External- direct HTML link'+';'+str(http_status)+';'+link, file = log)
elif http_status == 200 and "application" in r.headers['content-type']:
print ('External- direct HTML link'+';'+str(http_status)+';'+link, file = log)
当我执行的代码,我收到以下错误:
return self._store[key.lower()][1]
KeyError: 'content-length'
头输出如下:
CaseInsensitiveDict({'status': '200', path=/; HttpOnly, shpuvid=rBBcnFJUTliSHV+hA5lLAg==; expires=Thu, 08-Oct-15 18:26:32 GMT;'connection': 'keep-alive', 'cache-control': 'max-age=0, private, must-revalidate', 'date': 'Tue, 08 Oct 2013 18:26:32 GMT', 'content-type': 'text/html; charset=utf-8', 'x-rack-cache': 'miss'})
我知道,由于存在误差没有关键的“内容长度”,但是当if condition
不满足时必须跳到下一个elif
条件,而不是发生,而是停止执行抛出上述错误的代码。
有什么建议吗?可能是一个愚蠢的问题,但一个初学者学习的好东西。
这是完美的.. 。有用!!非常感谢!! –