def start(self, hits = (), pages = (), info = ()): self.finished = False self.queue = Queue() self.start_time = TimeClock.now() reporter = self class ReporterThread(threading.Thread): def __init__(self, name='ReporterThread'): threading.Thread.__init__(self, name=name) def run(self): reporter.run(hits, pages, info) thread = ReporterThread() thread.start() self.thread = thread
def start(self, hits=(), pages=(), info=()): self.finished = False self.queue = Queue() self.start_time = TimeClock.now() reporter = self class ReporterThread(threading.Thread): def __init__(self, name='ReporterThread'): threading.Thread.__init__(self, name=name) def run(self): reporter.run(hits, pages, info) thread = ReporterThread() thread.start() self.thread = thread
def play(self, variables={}): url = self.url data = self.body headers = self.headers browser = variables.get('browser') cookie = variables.get('cookie') if browser and hasattr(browser, 'open'): if headers.has_key('Cookie'): del headers[ 'Cookie'] # if this line raises Exception, then it may be a muti-threads bug... requester = browser.open #XXX: maybe not a good idea elif browser != None and hasattr(browser, 'urlopen'): if headers.has_key('Cookie'): del headers['Cookie'] requester = browser.open elif cookie != None and isinstance(cookie, CookieJar): if headers.has_key('Cookie'): del headers['Cookie'] requester = get_requester(cookie) else: requester = get_requester() if data: req = Request(url=url, data=data, headers=headers) else: req = Request(url=url, headers=headers) start_time = TimeClock.now() #XXX: is it a good place? try: resp = requester(req) except URL_ERROR, e: log.error('Request error: %s\nURL: %s\nHeaders: %s\n<%s> %s' % (req, url, headers, e.__class__.__name__, e)) from Errors import TerminateRequest #TODO: add trace information raise TerminateRequest(e)
def play(self, variables = {}): url = self.url data = self.body headers = self.headers browser = variables.get('browser') cookie = variables.get('cookie') if browser and hasattr(browser, 'open'): if headers.has_key('Cookie'): del headers['Cookie'] # if this line raises Exception, then it may be a muti-threads bug... requester = browser.open #XXX: maybe not a good idea elif browser != None and hasattr(browser, 'urlopen'): if headers.has_key('Cookie'): del headers['Cookie'] requester = browser.open elif cookie != None and isinstance(cookie, CookieJar): if headers.has_key('Cookie'): del headers['Cookie'] requester = get_requester(cookie) else: requester = get_requester() if data: req = Request(url=url, data=data, headers=headers) else: req = Request(url=url, headers=headers) start_time = TimeClock.now() #XXX: is it a good place? try: resp = requester(req) except URL_ERROR, e: log.error('Request error: %s\nURL: %s\nHeaders: %s\n<%s> %s' % (req, url, headers, e.__class__.__name__, e)) from Errors import TerminateRequest #TODO: add trace information raise TerminateRequest(e)
def start(self, hits=(), pages=(), info=()): self.finished = False self.queue = Queue() self.start_time = TimeClock.now() self.init_report(hits, pages, info)
def start(self, hits = (), pages = (), info = ()): self.finished = False self.queue = Queue() self.start_time = TimeClock.now() self.init_report(hits, pages, info)
req = Request(url=url, headers=headers) start_time = TimeClock.now() #XXX: is it a good place? try: resp = requester(req) except URL_ERROR, e: log.error('Request error: %s\nURL: %s\nHeaders: %s\n<%s> %s' % (req, url, headers, e.__class__.__name__, e)) from Errors import TerminateRequest #TODO: add trace information raise TerminateRequest(e) except STATUS_LINE_ERROR, e: log.error('Request error when requesting %s\nHeaders: %s\n%s:%s' % (url, headers, e, e.line)) from Errors import TerminateRequest #TODO: add trace information raise TerminateRequest('%s:%s' % (e.__class__.__name__, e)) end_time = TimeClock.now() #XXX: is it a good place? rawbody = resp.read() # XXX: Is it necessary? resp.close() response = Response() response.rawbody = rawbody response.body = None response.url = resp.geturl() response.code = resp.code #TODO: recover these attributes here after URL_C supports #response.info = resp.info() #response.headers = resp.info().headers response.start_time = start_time response.end_time = end_time response.time = end_time - start_time
start_time = TimeClock.now() #XXX: is it a good place? try: resp = requester(req) except URL_ERROR, e: log.error('Request error: %s\nURL: %s\nHeaders: %s\n<%s> %s' % (req, url, headers, e.__class__.__name__, e)) from Errors import TerminateRequest #TODO: add trace information raise TerminateRequest(e) except STATUS_LINE_ERROR, e: log.error('Request error when requesting %s\nHeaders: %s\n%s:%s' % (url, headers, e, e.line)) from Errors import TerminateRequest #TODO: add trace information raise TerminateRequest('%s:%s' % (e.__class__.__name__, e)) end_time = TimeClock.now() #XXX: is it a good place? rawbody = resp.read() # XXX: Is it necessary? resp.close() response = Response() response.rawbody = rawbody response.body = None response.url = resp.geturl() response.code = resp.code #TODO: recover these attributes here after URL_C supports #response.info = resp.info() #response.headers = resp.info().headers response.start_time = start_time response.end_time = end_time response.time = end_time - start_time