Example #1
0
	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
Example #2
0
    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
Example #3
0
    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)
Example #4
0
	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)
Example #5
0
    def start(self, hits=(), pages=(), info=()):
        self.finished = False
        self.queue = Queue()
        self.start_time = TimeClock.now()

        self.init_report(hits, pages, info)
Example #6
0
	def start(self, hits = (), pages = (), info = ()):
		self.finished = False
		self.queue = Queue()
		self.start_time = TimeClock.now()

		self.init_report(hits, pages, info)
Example #7
0
			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
Example #8
0
        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