md5 поиск с использованием исключений - PullRequest
0 голосов
/ 09 апреля 2011
import httplib
import re 

md5 = raw_input('Enter MD5: ') 

conn = httplib.HTTPConnection("www.md5.rednoize.com")
conn.request("GET", "?q="+ md5) 
try:
     response = conn.getresponse()
     data = response.read() 
     result = re.findall('<div id="result" >(.+?)</div', data)
     print result
except:
     print "couldnt find the hash"

raw_input()

Я знаю, что я, вероятно, неправильно реализую код, но какое исключение я должен использовать для этого? если он не может найти хеш, вызовите исключение и напечатайте «не могу найти хеш»

Ответы [ 2 ]

2 голосов
/ 09 апреля 2011

Поскольку re.findall не вызывает исключений, вероятно, вы не хотите проверять результаты. Вместо этого вы можете написать что-то вроде

result = re.findall('<div id="result" >(.+?)</div', data)
if result:
    print result
else:
    print 'Could not find the hash'
1 голос
/ 09 апреля 2011

Если вы действительно хотите, чтобы там было исключение, вы должны определить его:

class MyError(Exception):
   def <strong>init</strong>(self, value):
       self.value = value
   def <strong>str</strong>(self):
       return repr(self.value)</p>

<p>try:
    response = conn.getresponse()
    data = response.read() 
    result = re.findall('(.+?)</div', data)
    if not result:
        raise MyError("Could not find the hash")
except MyError:
   raise
...