Python自定义404响应

2024-09-28 01:27:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我为我玩的游戏编写了一个hiscore检查器,基本上你在.txt文件中输入一个用户名列表,然后输出结果找到.txt. 在

但是,如果页面响应404,它将抛出一个错误,而不是返回输出为“0”,并继续列表。在

脚本示例

#!/usr/bin/python

import urllib2

def get_total(username):
 try:
  req = urllib2.Request('http://services.runescape.com/m=hiscore/index_lite.ws?player=' + username)
  res = urllib2.urlopen(req).read()
  parts = res.split(',')
  return parts[1]
 except urllib2.HTTPError, e:
  if e.code == 404:
   return "0"
 except:
  return "err"

filename = "check.txt"

accs = []
handler = open(filename)
for entry in handler.read().split('\n'):
 if "No Displayname" not in entry:
  accs.append(entry)
handler.close()

for account in accs:
 display_name = account.split(':')[len(account.split(':')) - 1]
 total = get_total(display_name)
 if "err" not in total:
  rStr = account + ' - ' + total
  handler = open('tried.txt', 'a')
  handler.write(rStr + '\n')
  handler.close()
  if total != "0" and total != "49":
   handler = open('found.txt', 'a')
   handler.write(rStr + '\n')
   handler.close()
  print rStr
 else:
  print "Error searching"
  accs.append(account)

print "Done"

HTTPERROR异常似乎不起作用

^{pr2}$

错误响应如下所示。在

Python Error

现在我知道显示的错误似乎与404的响应无关,但是这只发生在从请求返回404响应的用户中,任何其他请求都可以正常工作。所以我可以假设问题在404响应异常中。在

我相信问题可能在于404是一个自定义页面,你也被重定向了?在

原来的页面是“example.com/index.php“但是404是”example.com/error.php“?在

不知道如何修复。在

出于测试目的,要使用的格式是

身份证号码:用户:显示在

放置在支票.txt在


Tags: intxtcomreturnif错误account页面
1条回答
网友
1楼 · 发布于 2024-09-28 01:27:04

似乎total可能最终成为None。在这种情况下,您不能检查它是否有'err'。要修复崩溃,请尝试将该行更改为:

if total is not None and "err" not in total:

更具体地说,get_total返回{},这意味着

  • parts[1]None
  • except urllib2.HTTPError, e:被执行,但是e.code不是404。在

在后一种情况下,None会在捕获异常时返回,但您只处理非常具体的404情况,而忽略了其他情况。在

相关问题 更多 >

    热门问题