Exemplo n.º 1
0
	def test_get_price_with_cookie_should_be_ok(self):
		challenge = Challenge()
		url = '''http://hughes.sieve.com.br:9090/level2/'''
		cookie = dict(d53db4de415c4e858dc761595623a898='+')
		data = challenge.do_request(url,None,cookie)['response']
		results = data.xpath("//div/text()")
		self.assertTrue(len(results) > 0)
Exemplo n.º 2
0
	def test_get_unavailable_product_should_return_empty_price_list(self):
		challenge = Challenge()
		url = '''http://www.americanas.com.br/produto/6991162/utilidadesdomesticas/aparelhodejantar/20pecas/para4pessoas/conjunto-de-jantar-ipanema-c/-20-pecas-porto-fino'''
		data = challenge.do_request(url)['response']
		results = data.xpath("//span[@class='amount']/text()")
		unavailable = data.xpath("//div[@class='unavailProd']/text()")
		self.assertTrue(len(unavailable) > 0 and len(results) == 0)
Exemplo n.º 3
0
	def test_get_price_sending_headers_should_be_ok(self):
		challenge = Challenge()
		url = '''http://hughes.sieve.com.br:9090/level1/'''
		header = {'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.77 Safari/537.1'}
		data = challenge.do_request(url,header)['response']
		results = data.xpath("//div/text()")
		self.assertTrue(len(results) > 0)
Exemplo n.º 4
0
	def test_get_available_product_should_return_price(self):
		challenge = Challenge()
		url = '''http://www.americanas.com.br/produto/110595674/informatica/notebooks/notebooks/notebook-gateway-nv55c12b-com-intel-core-i3-2gb-320gb-led-156-windows-7-home-basic'''
		data = challenge.do_request(url)['response']
		results = data.xpath("//span[@class='amount']/text()")
		unavailable = data.xpath("//div[@class='unavailProd']/text()")
		self.assertTrue(len(unavailable) == 0 and len(results) > 0)
# -*- coding: utf-8 -*-
#!/usr/bin/python
import sys; sys.path.append('modules')
from Challenge import *

challenge = Challenge()
url = "http://hughes.sieve.com.br:9090/level4/"
cookie = {'cade-meu-cookie':'esta aqui'}
data = challenge.do_request(url,None,cookie)['response']
results = data.xpath("//p/text()")
print "Preço: "+str(challenge.get_float_price(results[0]))
# -*- coding: utf-8 -*-
#!/usr/bin/python
import sys; sys.path.append('modules')
from Challenge import *

challenge = Challenge()
url = "http://hughes.sieve.com.br:9090/level1/"
header = {'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.77 Safari/537.1'}
data = challenge.do_request(url,header)['response']
results = data.xpath("//div/text()")
print "Preço: "+str(challenge.get_float_price(results[0]))
Exemplo n.º 7
0
	def test_get_price_without_cookie_should_return_error(self):
		challenge = Challenge()
		url = '''http://hughes.sieve.com.br:9090/level2/'''
		data = challenge.do_request(url)['response']
		results = data.xpath("//div/text()")
		self.assertTrue(len(results) == 0)
Exemplo n.º 8
0
	def test_get_inexistent_product_should_return_301_in_status_code(self):
		challenge = Challenge()
		url = '''http://www.americanas.com.br/produto/7262040/chromalin-(120-caps)-+-brinde-ripped-extreme-yellow-caps-(20-caps'''
		data = challenge.do_request(url)['status_code']
		self.assertTrue(data == 301)
# -*- coding: utf-8 -*-
#!/usr/bin/python
import sys; sys.path.append('modules')
from Challenge import *

challenge = Challenge()
domain = "http://hughes.sieve.com.br:9090"
url = domain + "/level3/"
data = challenge.do_request(url,None,None)['response']
yes = data.xpath("//a[1]/@href")
url = domain + yes[0]
cookies = challenge.do_request(url,None,None)['cookies'] 
url = domain + "/level3/"
data = challenge.do_request(url,None,cookies)['response']
results = data.xpath("//p/text()")
print "Preço: "+str(challenge.get_float_price(results[0]))
Exemplo n.º 10
0
# -*- coding: utf-8 -*-
#!/usr/bin/python
import sys

sys.path.append("modules")
from Challenge import *

challenge = Challenge()
url = "http://hughes.sieve.com.br:9090/level5/"
location = challenge.quote_url(challenge.do_request(url, None, None)["history"][0].headers["location"])
data = challenge.do_request(location, None, None)["response"]
results = data.xpath("//p/text()")
print "Preço: " + str(challenge.get_float_price(results[0]))
Exemplo n.º 11
0
# -*- coding: utf-8 -*-
# A simple script to extract product prices from Americanas.com
# Usage: desafio.py URL
# It simply connect to the url using requests lib and does a parse using xpath to discover the price inside the page
#!/usr/bin/python
import sys; sys.path.append('modules')
from Challenge import *

challenge = Challenge()
url = challenge.get_url_from_command_line()
data = challenge.do_request(url)['response']
status_code = challenge.do_request(url)['status_code']
results = data.xpath("//span[@class='amount']/text()")
unavailable = data.xpath("//div[@class='unavailProd']/text()")
if (status_code == 301):
	print u"\nInexistent product! Impossible to get price!\n"
else:
	if len(unavailable) > 0:
		print u'\nUnavailable product\n'
	elif len(results) > 0 :
		print "\nOriginal: '"+results[0]+"'\n"
        price = challenge.get_float_price(results[0])
        print "\nFloat: "+str(price)+"\n"