Пример #1
0
def descargarCategorias():

    LETRAS = [
        'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n',
        'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'
    ]

    for letra in LETRAS:

        indice = 1
        nuevos = 1
        while (nuevos > 0):
            nuevos = 0

            pagina = descargarResultado(
                'http://www.paginasamarillas.com.co/listado-de-secciones/' +
                letra + '/' + str(indice), 360, 10)

            if (pagina):
                pagina = pagina.find_all(class_='companyList')[0].find_all('a')
                indice = indice + 1

                for aa in pagina:
                    categoryLinks.append(aa['href'])
                    nuevos = nuevos + 1

    saveFile('categoryLinks.txt', categoryLinks)
    return
Пример #2
0
def descargarCategoriaEspecifica():

    pag = 1
    cant = 1

    while (cant > 0):
        cant = 0
        payload = "lang=E&pagina=" + str(pag) + "&arqSOC=arq"

        headers = {'content-type': "application/x-www-form-urlencoded"}

        pagina = descargarResultadoData(
            'https://www.arquitectes.cat/iframes/arquitectes/arquitectes/llistat.php',
            360, 10, payload, headers)
        pagina = pagina.find_all(class_='item_list')

        for link in pagina:
            cant = cant + 1
            lista.append(
                link.prettify().strip().split("codi=")[1].split("&amp")[0])

        print(pag)
        pag = pag + 1
        saveFile('resultadosIndiv.csv', lista)
    return
Пример #3
0
def descargarCategorias(codigo):

    payload = "lang=E&codi=" + codigo
    headers = {'content-type': "application/x-www-form-urlencoded"}

    pagina = descargarResultadoData(
        'https://www.arquitectes.cat/iframes/arquitectes/arquitectes/fitxa.php?codi='
        + codigo + '&lang=E', 360, 10, payload, headers)

    pagina = pagina.find_all(class_='result-item')

    pagina = pagina[0].prettify()

    #	print(pagina)

    try:
        name = pagina.split("profile-name\">")[1].split("</h3>")[0].strip()
    except:
        name = ''

    try:
        matri = pagina.split("<span>")[1].split("</span>")[0].strip()
    except:
        matri = ''

    try:
        dire = pagina.split(">-->")[1].split("</span>")[0].replace(
            ";", ",").strip()
    except:
        dire = ''

    try:
        tel = pagina.split("Tel")[1].split("</span>")[0].split(
            "<span>")[1].strip()
    except:
        tel = ''

    try:
        email1 = pagina.split("E-mail")[1].split("</span>")[0].split(
            ">")[3].split("<")[0].strip()
    except:
        email1 = ''

    try:
        email2 = pagina.split("E-mail")[1].split("</span>")[1].split(
            "<span>")[1].split(">")[1].split("<")[0].strip()
    except:
        email2 = ''

    print('"' + name + '";"' + matri + '";"' + str(dire) + '";"' + tel +
          '";"' + email1 + '";"' + email2 + '";')
    finales.append('"' + name + '";"' + matri + '";"' + str(dire) + '";"' +
                   tel + '";"' + email1 + '";"' + email2 + '";')
    saveFile('resultadosFinal.csv', finales)

    return
Пример #4
0
def descargarCategorias(codigo):

    payload = "lang=E&codi=" + codigo
    headers = {'content-type': "application/x-www-form-urlencoded"}

    pagina2 = descargarResultadoData(
        'http://www.coamalaga.es/colegio/quienessomos/colegiados/colegiados.asp?Apellidos=&Localidad='
        + codigo + '&TipoBusqueda=2&rnd=0.5768493866276709', 360, 10, payload,
        headers)

    pagina2 = pagina2.find_all(class_='link')

    for pagina in pagina2:

        try:
            name = pagina.text
        except:
            name = ''

        try:
            matri = pagina['id'].replace("divColegiado_", "")
        except:
            matri = ''

        try:
            dire = pagina.split(">-->")[1].split("</span>")[0].replace(
                ";", ",").strip()
        except:
            dire = ''

        try:
            tel = pagina.split("Tel")[1].split("</span>")[0].split(
                "<span>")[1].strip()
        except:
            tel = ''

        try:
            email1 = pagina.split("E-mail")[1].split("</span>")[0].split(
                ">")[3].split("<")[0].strip()
        except:
            email1 = ''

        try:
            email2 = pagina.split("E-mail")[1].split("</span>")[1].split(
                "<span>")[1].split(">")[1].split("<")[0].strip()
        except:
            email2 = ''

        if (matri):
            print('')
            print(codigo)
            print('"' + name + '";"' + matri)
            finales.append(matri + '";"' + name)
            saveFile('resultadosFinal.csv', finales)

    return
Пример #5
0
def escanearPagina(url):

    pag = 1
    cant = 30
    while (cant > 29):

        print('Escaneado ... ' + url + str(pag))

        cant = 0
        payload = ""

        headers = {'content-type': "application/x-www-form-urlencoded"}

        daatoss = descargarResultadoData(url + str(pag), 360, 10, payload,
                                         headers)
        pagina = daatoss.find_all(class_='item product product-item')

        datosCategoria = daatoss.find_all('ul',
                                          class_='items')[0].find_all('li')

        try:
            parte1 = datosCategoria[2].text.strip()
        except:
            parte1 = ''

        try:
            parte2 = datosCategoria[3].text.strip()
        except:
            parte2 = ''

        try:
            parte3 = datosCategoria[4].text.strip()
        except:
            parte3 = ''

        datosCategoria = '****' + parte1 + '___' + parte2 + '___' + parte3

        for link in pagina:
            linkPagina = link.find_all('a')[0].prettify().strip().split(
                'href="')[1].split('"')[0] + datosCategoria

            if ((linkPagina not in listaProductos)):
                cant = cant + 1
                listaProductos.append(linkPagina)

        print('Productos encontrados:' + str(len(listaProductos)))
        pag = pag + 1

        escaneados.append(url)
        saveFile('resultadosIndiv.csv', listaProductos)
    saveFile('escaneados.txt', escaneados)

    return
Пример #6
0
def escanearPagina(url):

    pag = 1
    cant = 1
    while (cant > 0):

        #		print('Escaneado ... ' +url+ str(pag))

        cant = 0
        payload = ""

        headers = {'content-type': "application/x-www-form-urlencoded"}

        pagina = descargarResultadoData(url + str(pag), 360, 10, payload,
                                        headers)
        pagina = pagina.find_all(class_='col-c')[0].find_all('a')

        for link in pagina:
            linkPagina = link.prettify().strip().split('href="')[1].split(
                '"')[0]

            if ((linkPagina not in listaProductos)
                    and ('www.yazbek.com.mx/item/' in linkPagina)):
                cant = cant + 1
                listaProductos.append(linkPagina)
                print(linkPagina)

#		print('Productos encontrados:' + str(len(listaProductos)))
        pag = pag + 1
        saveFile('resultadosIndiv.csv', listaProductos)

#	print('Escaneado ... ' +url)

    cant = 0
    payload = ""

    headers = {'content-type': "application/x-www-form-urlencoded"}

    pagina = descargarResultadoData(url, 360, 10, payload, headers)
    pagina = pagina.find_all(class_='col-c')[0].find_all('a')

    for link in pagina:
        linkPagina = link.prettify().strip().split('href="')[1].split('"')[0]
        if (linkPagina not in listaProductos
                and 'www.yazbek.com.mx/item/' in linkPagina):
            cant = cant + 1
            listaProductos.append(linkPagina)


#	print('Productos encontrados:' + str(len(listaProductos)))

    return
Пример #7
0
def escanearPagina(url):



	pag = 1;
	cant = 1;
	while (cant>0):

		conn = http.client.HTTPSConnection("www.academy.com")
		headers = {    }

		print(url)
		cant =0
		conn.request("GET", url + "?beginIndex="+str(pag), headers=headers)
		res = conn.getresponse()
		data = res.read()

		try:
			aaa = data.decode("utf-8")
			pagina = BeautifulSoup(aaa, 'html.parser');
			valores = pagina.find_all('li');

			for tt in valores:
				if ('catalogEntry_img' in tt.prettify()):
					linkPagina = tt.find_all('a')[0]['href'] 
		
					if (linkPagina not in listaProductos):	
						cant = cant + 1;
						listaProductos.append(linkPagina);


		except:
			aaa = ''

#		pagina = descargarResultadoData(url+str(pag), 360, 10, payload, headers)
#		pagina = pagina.find_all(class_='type-product');

#		for link in pagina:
#			linkPagina = link.prettify().strip().split('href="')[1].split('"')[0];

#			if (linkPagina not in listaProductos):	
#				cant = cant + 1;
#				listaProductos.append(linkPagina);

		print('Productos encontrados:' + str(len(listaProductos)))
		pag = pag + 48
		saveFile('productos_links.csv', listaProductos)

	print('Escaneado ... ' +url)

	return;
Пример #8
0
def descargarCategorias(lista):

    url1 = "http://www.coaib.org/es/directorio/colegiados--sociedades/arquitectos-ejercientes.aspx?page="
    url2 = "&tipoBusqueda=1&nombre=a&demarcacion=0&municipio=0"

    elementos = list(range(125))

    for aa in elementos:
        response = requests.request("GET", url1 + str(aa) + url2)
        descargarCategoriaEspecifica(response.text, lista)
        print(url1 + str(aa) + url2)
        saveFile('pino.txt', lista)

    return
def print_time( lista, filename):
	resultados = [];
	cant=1;
	cant2=1;
	for cat in lista:
		descargarCategoriaEspecifica22(cat.strip(), resultados);
		cant = cant + 1;
		print (  str(cant / 5.75)  + '% ' + filename) ;
		cant2= cant2 + 1;
		
		if (cant2==50):
			saveFile(filename, resultados)
			cant2=0;
	saveFile(filename, resultados)
Пример #10
0
def escanearPagina(url):

	pag = 1;
	cant = 1;
	while (cant>0):

		print('Escaneado ... ' +url+ str(pag))

		cant = 0;
		payload = ""

		headers = {	'content-type': "application/x-www-form-urlencoded" }

		pagina = descargarResultadoData(url+str(pag), 360, 10, payload, headers)
		pagina = pagina.find_all(class_='type-product');

		for link in pagina:
			linkPagina = link.prettify().strip().split('href="')[1].split('"')[0];

			if (linkPagina not in listaProductos):	
				cant = cant + 1;
				listaProductos.append(linkPagina);

		print('Productos encontrados:' + str(len(listaProductos)))
		pag = pag + 1
		saveFile('resultadosIndiv.csv', listaProductos)

	print('Escaneado ... ' +url)

	cant = 0;
	payload = ""

	headers = {	'content-type': "application/x-www-form-urlencoded" }

	pagina = descargarResultadoData(url, 360, 10, payload, headers)
	pagina = pagina.find_all(class_='type-product');

	for link in pagina:
		linkPagina = link.prettify().strip().split('href="')[1].split('"')[0];
		if (linkPagina not in listaProductos):	
			cant = cant + 1;
			listaProductos.append(linkPagina);

	print('Productos encontrados:' + str(len(listaProductos)))


	return;
Пример #11
0
def print_time( lista, filename):
	resultados = [];
	cant=1;
	cant2=1;
	for cat in lista:
		try:
			descargarCategoriaEspecifica22(cat.strip(), resultados);
		except:
			print(' Fallo ' + cat )

		cant = cant + 1;
		cant2= cant2 + 1;
		
		if (cant2==50):
			saveFile(filename, resultados)
			print (  str(cant / len(lista) * 100)  + '% ' + filename) ;
			cant2=0;
	saveFile(filename, resultados)
def descargarCategorias(codigo):

	payload = "lang=E&codi="+codigo
	headers = {	'content-type': "application/x-www-form-urlencoded" }
	pagina = descargarResultadoData('http://www.coamalaga.es/colegio/quienessomos/colegiados/datoscolegiados.asp?idArqSoc='+codigo.split("\";\"")[0]+'&rnd=0.4214829040690903', 360, 10, payload, headers)
	
#	print (pagina);

	try:
		email = str(pagina).split("<![CDATA[")[1].split("]")[0].replace(";",",").replace("\"","").strip();
	except:
		email='';

	try:
		direccion = str(pagina).split("direccion")[1].split("<![CDATA[")[1].split("]")[0].replace(";",",").replace("\\xaa","ma ").replace("\"","").replace("<br>"," ").strip();
	except:
		direccion='';

	try:
		numerocolegiado = str(pagina).split("<numerocolegiado>")[1].split("</numerocolegiado>")[0].replace(";",",").replace("\"","").strip();
	except:
		numerocolegiado='';

	try:
		localidad = str(pagina).split("direccion")[1].split("<![CDATA[")[1].split("]")[0].split("-")[1].split("(")[0].replace(";",",").replace("\\xaa","ma ").replace("\"","").replace("<br>"," ").strip();
	except:
		localidad='';

	try:
		telefono = str(pagina).split("telefono")[1].split("<![CDATA[")[1].split("]")[0].replace(";",",").replace("\\xaa","ma ").replace("\"","").replace("<br>"," ").strip();
	except:
		telefono='';

	try:
		email2 = pagina.split("E-mail")[1].split("</span>")[1].split("<span>")[1].split(">")[1].split("<")[0].strip();
	except:
		email2='';


	print('"' + numerocolegiado + '";"' + codigo.split("\";\"")[1] + '";"' + direccion + '";"' + localidad + '";"' + telefono + '";"' + email + '";"' )
	finales.append('"' + numerocolegiado + '";"' + codigo.split("\";\"")[1] + '";"' + direccion + '";"' + localidad + '";"' + telefono + '";"' + email + '";')
	saveFile('resultadosFinal_COL.csv', finales)

	return;
Пример #13
0
def descargarInfoAccion(url, accion):
    file = []
    loadFile(accion + '.csv', file)
    data = descargarResultadoData(url, 360, 10, '', '')
    data = data.split("\"HistoricalPriceStore\":")[1].split("]")[0] + ']}'
    data = json.loads(data)

    if (file):
        file.append(parse(data["prices"][0]))
    else:
        file.append("Date,Open,High,Low,Close,Adj Close,Volume")
        for precio in data["prices"]:
            try:
                file.append(parse(precio))
            except:
                print('')

    saveFile(accion + '.csv', file)
    return
Пример #14
0
def escanearProducto(fila, tiendaSelect):

    parentSKU = fila.split(';')[0]
    sku = fila.split(';')[2]

    if (parentSKU not in stocks):
        conn = http.client.HTTPSConnection("www.academy.com")
        headers = {}
        conn.request(
            "GET",
            'https://www.academy.com/shop/AYRStoreLocatorServiceCmd?lat=40.8201966&lon=-96.70047629999999&ParentSKU='
            + parentSKU,
            headers=headers)
        res = conn.getresponse()
        data = res.read()

        aaa = data.decode("utf-8")
        paginaStock = BeautifulSoup(aaa, 'html.parser')

        stocks[parentSKU] = paginaStock

    else:
        paginaStock = stocks[parentSKU]

    try:
        stockTiennda = paginaStock.prettify().split(tiendaSelect)[1].split(
            'store-')[0].split(sku)[1].split('",')[0].replace('":"',
                                                              '').split('"')[0]
    except:
        stockTiennda = '0'

    porce = str((len(listaResultadosSave) / len(listaResultados)) * 100)
    print(porce[0:4] + '%  Escaneado ... ' + sku)

    listaResultadosSave.append(fila + ';' + str(stockTiennda))

    saveFile('productos_con_stock.csv', listaResultadosSave)

    return
Пример #15
0
def print_time(lista, filename):

    resultados = []
    cant = 1
    cant2 = 1
    for cat in lista:
        try:
            descargarCategoriaEspecifica(
                '../../Bash/Descargar_Sitios_Paralela2/' + cat.strip(),
                resultados)
        except:
            print('Errorcirijillo')


#			print(cat + ' ' + filename);

        cant = cant + 1
        cant2 = cant2 + 1

        if (cant2 == 50):
            print(str((cant / 4600) * 100) + '%')
            saveFile(filename, resultados)
            cant2 = 0
Пример #16
0
def descargarInfoAccion2(url1, url2, acumulaodo, labbel, d, pos, nombrefile,
                         tip_imn, tip_op, ciudad):
    file = []

    querystring = {
        "mtiponegocio": tip_op,
        "mtipoinmueble": tip_imn,
        "mciudad": ciudad,
        "selectedLocationCategory": "1",
        "selectedLocationFilter": "mciudad",
        "currentPage": pos,
        "totalPropertiesCount": "1184",
        "totalUsedPropertiesCount": "1184",
        "totalNewPropertiesCount": "0",
        "sfh": "1"
    }

    elem = []

    orig = descargarResultadoData2(url1 + url2, querystring, 360, 10, '', '')
    data8 = orig.prettify().split('<div class="m_rs_list_item ">')

    #print(orig.prettify())

    data = []
    cant = 0
    for mm in data8:
        if (cant == 0):
            cant = 1
        else:
            elem.append(mm.split('href="')[1].split('"')[0])

    for aa in elem:
        orig2 = descargarResultadoData3(aa, '', 360, 10, '', '')

        try:
            dato_nombre = orig2.find_all(
                class_="m_property_info_title")[0].find_all(
                    "h1")[0].text.replace(',', ';').strip()
        except:
            dato_nombre = ''

        try:
            dato_link = aa
        except:
            dato_link = ''

        try:
            dato_area = ''
        except:
            dato_area = ''

        try:
            dato_precio = orig2.find_all(
                class_="m_property_info_table")[0].find_all(
                    "dd")[0].text.replace(',', ';').strip()
        except:
            dato_precio = ''

        try:
            dato_habit = orig2.find_all(
                class_="m_property_info_table")[0].prettify().split(
                    "Habitaciones")[1].split("<dd>")[1].split(
                        "</dd>")[0].strip()
        except:
            dato_habit = ''

        try:
            dato_banio = orig2.find_all(
                class_="m_property_info_table")[0].prettify().split(
                    "Ba")[1].split("<dd>")[1].split("</dd>")[0].strip()
        except:
            dato_banio = ''

        try:
            dato_edad = ''
        except:
            dato_edad = ''

        try:
            dato_parq = orig2.find_all(
                class_="m_property_info_table")[0].prettify().split(
                    "Parqueadero")[1].split("<dd>")[1].split(
                        "</dd>")[0].strip()
        except:
            dato_parq = ''


#		print('Nombre:' + dato_nombre + '\ndato_link ' + dato_link + '\ndato_area ' + dato_area + '\ndato_precio ' + dato_precio + '\ndato_habit ' + dato_habit + '\ndato_banio ' + dato_banio + '\ndato_edad ' + dato_edad + '\ndato_parq ' + dato_parq + '\n'  )

        d.append('www.fincaraiz.com.co' + aa)

        labbel.set("Escaneando pagina " + str(pos) + "...\n")
        app.update_idletasks()
        app.update()

        acumulaodo.append(dato_nombre + ',' + dato_link + ',' + dato_area +
                          ',' + dato_precio + ',' + dato_habit + ',' +
                          dato_banio + ',' + dato_edad + ',' + dato_parq)

        saveFile(nombrefile, acumulaodo)

    return elem
Пример #17
0
def descargarInfoAccion(url1, url2, acumulaodo, labbel, d, pos, nombrefile):
    file = []
    orig = descargarResultadoData(url1, url2, 360, 10, '', '')
    data = orig.find_all(id="divAdverts")[0]
    data = data.find_all('ul')

    elem = []

    for aa in data:
        try:
            elem.append(aa.find_all('a')[0]['href'])
        except:
            a = ''

    for aa in elem:

        ooo = descargarResultadoData(url1, aa, 360, 10, '', '')
        dato_nombre2 = ooo.find_all(class_="title")[0].text.replace(
            ',', ';').strip().rstrip('\r\n')
        dato_nombre = ' '.join(line.strip()
                               for line in dato_nombre2.splitlines())

        dato_link = 'www.fincaraiz.com.co' + aa.replace(',', ';')

        prov_area = '<div class="breadcrumb left">' + ooo.prettify().split(
            '<div class="breadcrumb left">')[1].split(
                '<div class="breadcrumb right">')[0]
        prov_area = BeautifulSoup(prov_area, 'html.parser')
        prov_area = prov_area.text
        prov_area = prov_area.split('/')
        dato_area = ''
        for aa in prov_area:
            if (not 'Inicio' in aa) and (not ' - ' in aa):
                dato_area = dato_area + '/' + aa.strip()

        try:
            dato_precio = ooo.find_all(
                class_="price")[0].find_all("h2")[0].text.replace(',',
                                                                  ';').strip()
        except:
            dato_precio = ''
        try:
            dato_habit = str(
                int(ooo.prettify().split(
                    'src="/App_Theme/css/img/ico_bed.png"')[1].split(':')
                    [1].split('<')[0].strip()))
        except:
            dato_habit = ''

        try:
            dato_banio = str(
                int(ooo.prettify().split(
                    'src="/App_Theme/css/img/ico_bath.png"')[1].split(':')
                    [1].split('<')[0].strip()))
        except:
            dato_banio = ''

        try:
            dato_parq = str(
                int(ooo.prettify().split(
                    'src="/App_Theme/css/img/ico_garaje.png"')[1].split(':')
                    [1].split('<')[0].strip()))
        except:
            dato_parq = ''

        try:
            dato_edad = ooo.prettify().split('edad:')[1].split(',')[0].strip()
        except:
            dato_edad = ''


#		print('Nombre:' + dato_nombre + '\ndato_link ' + dato_link + '\ndato_area ' + dato_area + '\ndato_precio ' + dato_precio + '\ndato_habit ' + dato_habit + '\ndato_banio ' + dato_banio + '\ndato_edad ' + dato_edad + '\ndato_parq ' + dato_parq + '\n'  )

        d.append('www.fincaraiz.com.co' + aa)

        labbel.set("Escaneando pagina " + str(pos) + "...\n" + "\n".join(d))
        app.update_idletasks()
        app.update()

        acumulaodo.append(dato_nombre + ',' + dato_link + ',' + dato_area +
                          ',' + dato_precio + ',' + dato_habit + ',' +
                          dato_banio + ',' + dato_edad + ',' + dato_parq)

        saveFile(nombrefile, acumulaodo)

    try:
        orig.find_all(title="Ir a la pagina Siguiente")[0]
    except:
        elem = []

    return elem
Пример #18
0
#categoryLinks = [];
#loadFile('categoryLinks.txt', categoryLinks);
#if (categoryLinks):
#	print('Se toman los datos de categoryLinks.txt');
#else:
#	descargarCategorias();

# -------------  PASO 2 - Empresas ---------------

#categoryLinksEscaneados = [];
#resultados = [];
#loadFile('resultados.csv', resultados);
#for cat in categoryLinks:
#	descargarCategoriaEspecifica(cat.strip())
#	categoryLinksEscaneados.append(cat.strip())
#	saveFileExc('categoryLinks.txt', categoryLinks, categoryLinksEscaneados)

files = []
loadFile('files.txt', files)
cant = 1
cant2 = 1
for cat in files:
    descargarCategoriaEspecifica('../../Bash/Descargar_Sitios_Paralela/' +
                                 cat.strip())
    print(cat + ' ' + str(cant) + '..82730')
    cant = cant + 1
    cant2 = cant2 + 1

    if (cant2 == 50):
        saveFile('resultados.csv', resultados)
        cant2 = 0
Пример #19
0
    if nombre.endswith(' IZQ'):
        nombre2 = rreplace(nombre, ' IZQ', '', 1)

        if (nombre2 in hashtable_by_nombre):
            hashtable_by_sku[sku] = hashtable_by_nombre.get(nombre2)
        else:
            hashtable_by_sku[sku] = cant
            hashtable_by_nombre[nombre2] = cant
            cant = cant + 1

    if (not nombre.endswith(' IZQ') and not nombre.endswith(' DER')):

        if (nombre in hashtable_by_nombre):
            hashtable_by_sku[sku] = hashtable_by_nombre.get(nombre)
        else:
            hashtable_by_sku[sku] = cant
            hashtable_by_nombre[nombre] = cant
            cant = cant + 1

tofile = []

for uu in fileBase:

    nombre = uu.split(",")[1].replace("\"", "")
    sku = uu.split(",")[0].replace("\"", "")

    tofile.append(str(hashtable_by_sku.get(sku)) + ',' + uu)

saveFile('pino.txt', tofile)
Пример #20
0
def descargarFincaRaizPage(url1, url2, acumulaodo, labbel, d, pos, nombrefile):
    file = []
    orig = descargarResultadoData(url1, url2, 360, 10, '', '')
    data = orig.find_all(id="divAdverts")[0]
    data = data.find_all('ul')

    elem = []

    for aa in data:
        try:
            elem.append(aa.find_all('a')[0]['href'])
        except:
            a = ''

    for aa in elem:

        ooo = descargarResultadoData(url1, aa, 360, 10, '', '')
        dato_nombre2 = ooo.find_all(class_="title")[0].text.replace(
            ',', ';').strip().rstrip('\r\n')
        dato_nombre = ' '.join(line.strip()
                               for line in dato_nombre2.splitlines())

        dato_link = 'www.fincaraiz.com.co' + aa.replace(',', ';')

        prov_area = '<div class="breadcrumb left">' + ooo.prettify().split(
            '<div class="breadcrumb left">')[1].split(
                '<div class="breadcrumb right">')[0]
        prov_area = BeautifulSoup(prov_area, 'html.parser')
        prov_area = prov_area.text
        prov_area = prov_area.split('/')
        dato_area = ''
        for aa in prov_area:
            if (not 'Inicio' in aa) and (not ' - ' in aa):
                dato_area = dato_area + '/' + aa.strip()

        try:
            dato_precio = ooo.find_all(
                class_="price")[0].find_all("h2")[0].text.replace(
                    ',', ';').strip().replace(".", "").replace("$", "")
        except:
            dato_precio = ''

        try:
            dato_habit = str(
                int(ooo.prettify().split(
                    'src="/App_Theme/css/img/ico_bed.png"')[1].split(':')
                    [1].split('<')[0].strip()))
        except:
            dato_habit = ''

        try:
            dato_banio = str(
                int(ooo.prettify().split(
                    'src="/App_Theme/css/img/ico_bath.png"')[1].split(':')
                    [1].split('<')[0].strip()))
        except:
            dato_banio = ''

        try:
            dato_parq = str(
                int(ooo.prettify().split(
                    'src="/App_Theme/css/img/ico_garaje.png"')[1].split(':')
                    [1].split('<')[0].strip()))
        except:
            dato_parq = ''

        try:
            dato_edad = ooo.prettify().split('edad:')[1].split(',')[0].strip()
        except:
            dato_edad = ''

        try:
            dato_areaPriv = '"' + ooo.find(
                'b', text=re.compile(r'Área privada')).parent.text.split(
                    ':')[1].strip() + '"'
        except:
            dato_areaPriv = ''

        try:
            dato_areaConst = '"' + ooo.find(
                'b', text=re.compile(r'Área Const')).parent.text.split(
                    ':')[1].strip().split("m")[0].replace(",", ".") + '"'
        except:
            dato_areaConst = ''

        try:
            dato_nuevo = float(dato_precio.replace('"', '')) / float(
                dato_areaConst.replace('"', ''))
        except:
            dato_nuevo = ''

        try:
            dato_estrato = '"' + ooo.find('b', text=re.compile(
                r'Estrato')).parent.text.split(':')[1].text.replace(
                    '"', '').strip() + '"'
        except:
            dato_estrato = ''

        try:
            dato_estado = ooo.find(
                'b',
                text=re.compile(r'Estado')).parent.text.split(':')[1].strip()
        except:
            dato_estado = ''

        try:
            dato_piso = ooo.find(
                'b',
                text=re.compile(r'Piso No')).parent.text.split(':')[1].strip()
        except:
            dato_piso = ''
        try:
            dato_descrip = '"' + ooo.find_all(
                'div', class_='description')[0].find('p').text.replace(
                    '"', '').strip() + '"'
        except:
            dato_descrip = ''

        try:
            dato_balcon = str(
                ooo.find('li', text=re.compile(r'Balcón')).text == 'Balcón')
        except:
            dato_balcon = ''
        try:
            dato_calentador = str(
                ooo.find('li', text=re.compile(r'Calentador')).text.strip() ==
                'Calentador')
        except:
            dato_calentador = ''
        try:
            dato_cocinaInt = str(
                ooo.find('li', text=re.compile(r'Cocina Integral')).text ==
                'Cocina Integral')
        except:
            dato_cocinaInt = ''
        try:
            dato_instalacioGas = str(
                ooo.find('li', text=re.compile(r'Instalación de gas')).text.
                strip() == 'Instalación de gas')
        except:
            dato_instalacioGas = ''

        try:
            dato_actualizado = ooo.find(
                'li', style='display:inline;margin-right:30px;').text.replace(
                    "Actualizado:", "").strip()
        except:
            dato_actualizado = ''
        try:
            dato_visitas = ''
        except:
            dato_visitas = ''
        try:
            dato_codweb = ooo.find_all(
                'li', style='display:inline; margin-right:30px')[1].text
        except:
            dato_codweb = ''

        d.append('www.fincaraiz.com.co' + aa)

        labbel.set("Escaneando pagina " + str(pos) + "...\n" + "\n".join(d))
        app.update_idletasks()
        app.update()

        acumulaodo.append(dato_nombre + ',' + dato_link + ',' + dato_area +
                          ',' + dato_precio + ',' + dato_habit + ',' +
                          dato_banio + ',' + dato_edad + ',' + dato_parq +
                          ',' + dato_areaPriv + ',' + dato_areaConst + ',' +
                          dato_estrato + ',' + dato_estado + ',' +
                          dato_descrip + ',' + dato_piso + ',' + dato_balcon +
                          ',' + dato_calentador + ',' + dato_cocinaInt + ',' +
                          dato_instalacioGas + ',' + dato_actualizado + ',' +
                          dato_visitas + ',' + dato_codweb + ',' +
                          str(dato_nuevo))

        saveFile(nombrefile, acumulaodo)

    try:
        orig.find_all(title="Ir a la pagina Siguiente")[0]
    except:
        elem = []

    return elem
Пример #21
0
def descargarMetroCuadradoPage(url1, url2, acumulaodo, labbel, d, pos,
                               nombrefil, tip_imn, tip_op, ciudad, ciudad2,
                               checkbox, ciudad3):

    nombrefile = ''

    if (checkbox.get() < 2):
        nombrefile = nombrefil + ciudad3 + '.csv'
        querystring = {
            "mtiponegocio": tip_op,
            "mtipoinmueble": tip_imn,
            "mciudad": ciudad2,
            "selectedLocationCategory": "1",
            "selectedLocationFilter": "mciudad",
            "currentPage": pos,
            "totalPropertiesCount": "1184",
            "totalUsedPropertiesCount": "1184",
            "totalNewPropertiesCount": "0",
            "sfh": "1"
        }
    else:
        nombrefile = nombrefil + ciudad.replace(" ", "_") + '.csv'
        querystring = {
            "mtiponegocio": tip_op,
            "mtipoinmueble": tip_imn,
            "mciudad": ciudad,
            "selectedLocationCategory": "1",
            "selectedLocationFilter": "mciudad",
            "currentPage": pos,
            "totalPropertiesCount": "1184",
            "totalUsedPropertiesCount": "1184",
            "totalNewPropertiesCount": "0",
            "sfh": "1"
        }

    pageResponse = descargarResultadoData2(url1 + url2, querystring, 360, 10,
                                           '', '')
    pubList = pageResponse.prettify().split('<div class="m_rs_list_item ">')

    print(querystring)

    elem = []
    cant = 0

    if 'No tenemos inmuebles que coincidan con su' in pageResponse.prettify():
        labbel.set('No tenemos inmuebles que coincidan con su busqueda')
        app.update_idletasks()
        app.update()
        acumulaodo.append(
            'No tenemos mas inmuebles que coincidan con su busqueda')
        saveFile(nombrefile.replace("/", "_"), acumulaodo)

        return elem

    for pub in pubList:
        if (cant == 0):
            cant = 1
        else:
            elem.append(pub.split('href="')[1].split('"')[0])

    for aa in elem:
        orig2 = descargarResultadoData3(aa, '', 360, 10, '', '')

        try:
            dato_nombre = orig2.find_all(
                class_="m_property_info_title")[0].find_all(
                    "h1")[0].text.replace(',', ';').strip()
        except:
            dato_nombre = ''

        try:
            dato_link = aa
        except:
            dato_link = ''

        try:
            dato_area = orig2.find_all(
                class_="m_property_info_table")[0].prettify().split(
                    "construida")[1].split("<dd>")[1].split(
                        "<")[0].strip().replace("de", "").replace("m", "")
        except:
            dato_area = ''

        try:
            dato_precio = orig2.find_all(
                class_="m_property_info_table")[0].find_all(
                    "dd")[0].text.replace(',',
                                          '').replace('.',
                                                      '').replace('$',
                                                                  '').strip()
        except:
            dato_precio = ''

        flo_area = float(dato_area)
        flo_pre = float(dato_precio)
        dato_nuevo = flo_pre / flo_area

        try:
            dato_habit = orig2.find_all(
                class_="m_property_info_table")[0].prettify().split(
                    "Habitaciones")[1].split("<dd>")[1].split(
                        "</dd>")[0].strip()
        except:
            dato_habit = ''

        try:
            dato_banio = orig2.find_all(
                class_="m_property_info_table")[0].prettify().split(
                    "Ba")[1].split("<dd>")[1].split("</dd>")[0].strip()
        except:
            dato_banio = ''

        try:
            dato_edad = ''
        except:
            dato_edad = ''

        try:
            dato_parq = orig2.find_all(
                class_="m_property_info_table")[0].prettify().split(
                    "Parqueadero")[1].split("<dd>")[1].split(
                        "</dd>")[0].strip()
        except:
            dato_parq = ''

        try:
            dato_codweb = orig2.find_all(class_="ref")[0].text.strip()
        except:
            dato_codweb = ''

        try:
            dato_inmobiliaria = orig2.find_all(
                class_="datos_inmobiliaria")[0].text.strip()
        except:
            dato_inmobiliaria = ''

        try:
            dato_inmobiliaria = orig2.find_all(
                class_="datos_inmobiliaria")[0].text.strip()
        except:
            dato_inmobiliaria = ''

        try:
            dato_descrip = '"' + orig2.find_all(
                id="pDescription")[0].text.replace('"', '').strip() + '"'
        except:
            dato_descrip = ''

        try:
            dato_nombreBarrio = orig2.prettify().split(
                "Nombre común del barrio")[1].split("<h4>")[1].split(
                    "</h4>")[0].strip()
        except:
            dato_nombreBarrio = ''

        try:
            dato_nombreBarrioCat = orig2.prettify().split(
                "Nombre del barrio catastral")[1].split("<h4>")[1].split(
                    "</h4>")[0].strip()
        except:
            dato_nombreBarrioCat = ''

        try:
            dato_valorVenta = orig2.prettify().split(
                "Valor de venta")[1].split("<h4>")[1].split(
                    "<")[0].strip().replace(".", "").replace("$", "")
        except:
            dato_valorVenta = ''

        try:
            dato_valorArriendo = orig2.prettify().split(
                "Valor de arriendo")[1].split("<h4>")[1].split(
                    "<")[0].strip().replace(".", "").replace("$", "")
        except:
            dato_valorArriendo = ''

        try:
            dato_areaConst = orig2.find_all(
                class_="m_property_info_details")[0].prettify().split(
                    "Área construida")[1].split("<h4>")[1].split(
                        "<")[0].strip()
            dato_areaConst = dato_areaConst.replace("m", "")
        except:
            dato_areaConst = ''

        try:
            dato_tiempoCost = orig2.prettify().split("Tiempo de construido")[
                1].split("<h4>")[1].split("<")[0].strip()
        except:
            dato_tiempoCost = ''
        try:
            dato_biblio = orig2.prettify().split("Estudio o biblioteca")[
                1].split("<h4>")[1].split("<")[0].strip()
        except:
            dato_biblio = ''
        try:
            dato_terraza = orig2.prettify().split("Terraza/Balcón")[1].split(
                "<h4>")[1].split("<")[0].strip()
        except:
            dato_terraza = ''

        try:
            dato_instalacioGas = orig2.prettify().split(
                "Tipo instalación de gas")[1].split("<h4>")[1].split(
                    "<")[0].strip()
        except:
            dato_instalacioGas = ''
        try:
            dato_instalacioCalef = orig2.prettify().split(
                "Tipo de calentador")[1].split("<h4>")[1].split(
                    "<")[0].strip()
        except:
            dato_instalacioCalef = ''
        try:
            dato_vista = orig2.prettify().split("Vista")[1].split(
                "<h4>")[1].split("<")[0].strip()
        except:
            dato_vista = ''
        try:
            dato_habServ = orig2.prettify().split("Cuarto de servicio")[
                1].split("<h4>")[1].split("<")[0].strip()
        except:
            dato_habServ = ''
        try:
            dato_tipCortina = orig2.prettify().split(
                "Tipo de Cortinas")[1].split("<h4>")[1].split("<")[0].strip()
        except:
            dato_tipCortina = ''
        try:
            dato_tipPiso = orig2.prettify().split("Tipo de acabado piso")[
                1].split("<h4>")[1].split("<")[0].strip()
        except:
            dato_tipPiso = ''
        try:
            dato_tipPisoAlcoba = orig2.prettify().split(
                "Tipo de piso en alcobas")[1].split("<h4>")[1].split(
                    "<")[0].strip()
        except:
            dato_tipPisoAlcoba = ''
        try:
            dato_numPiso = orig2.prettify().split("Número de piso")[1].split(
                "<h4>")[1].split("<")[0].strip()
        except:
            dato_numPiso = ''

        d.append(aa)

        labbel.set("Escaneando pagina " + str(pos) + "...\n" + "\n".join(d))

        app.update_idletasks()
        app.update()

        acumulaodo.append(dato_nombre + ',' + dato_link + ',' + dato_area +
                          ',' + dato_precio + ',' + dato_habit + ',' +
                          dato_banio + ',' + dato_edad + ',' + dato_parq +
                          ',' + dato_codweb + ',' + dato_inmobiliaria + ',' +
                          dato_descrip + ',' + dato_nombreBarrio + ',' +
                          dato_nombreBarrioCat + ',' + dato_valorVenta + ',' +
                          dato_valorArriendo + ',' + dato_areaConst + ',' +
                          dato_tiempoCost + ',' + dato_biblio + ',' +
                          dato_terraza + ',' + dato_instalacioGas + ',' +
                          dato_instalacioCalef + ',' + dato_vista + ',' +
                          dato_habServ + ',' + dato_tipCortina + ',' +
                          dato_tipPiso + ',' + dato_tipPisoAlcoba + ',' +
                          dato_numPiso + ',' + str(dato_nuevo))
        saveFile(nombrefile.replace("/", "_"), acumulaodo)

    return elem
Пример #22
0
'http://www.vianala.com/page/', 
'http://www.vianala.com/catalogo/bolsas/tienda-online-bolsos-en-mexico/page/',
'http://www.vianala.com/catalogo/bolsas/comprar-bolsos-por-internet/',
'http://www.vianala.com/catalogo/bolsas/compra-de-bolsos-online/page/',
'http://www.vianala.com/catalogo/bolsas/venta-bolsos/page/',
'http://www.vianala.com/catalogo/bolsas/bolsos-tipo-mochila-piel/',
'http://www.vianala.com/catalogo/bolsas/tienda-online-de-bolsos/page/',
'http://www.vianala.com/catalogo/bolsas/bolsos-venta-online/',
'http://www.vianala.com/catalogo/bolsas/crossbody/',
'http://www.vianala.com/catalogo/bolsas/bolsas-con-bordados-chiapanecos/',
'http://www.vianala.com/catalogo/carteras/page/',
'http://www.vianala.com/catalogo/ofertas/',
'http://www.vianala.com/catalogo/regalos-corporativos-empresariales/page/',
'http://www.vianala.com/catalogo/portafolios-de-piel/',
'http://www.vianala.com/catalogo/carteras/cartera-para-hombre/',
'http://www.vianala.com/catalogo/mensajeras/bolsos-tipo-bandolera-para-caballero/',
'http://www.vianala.com/catalogo/regalos-corporativos-empresariales/tarjeteros-de-piel/',
'http://www.vianala.com/catalogo/regalos-corporativos-empresariales/articulos-piel-viaje/portacorbatas-de-piel/'];

listaLinksIniciales2 = [
'http://www.vianala.com/catalogo/bolsas/crossbody/'];

listaProductos = []
for pagina in listaLinksIniciales:
	escanearPagina(pagina);

listaResultados = []
for prod in listaProductos:
	escanearProducto(prod);
	saveFile('pino.csv',listaResultados);
Пример #23
0
    return


# -------------  PASO 1 - Categorias ---------------

#categoryLinks = [];
#loadFile('categoryLinks.txt', categoryLinks);
#if (categoryLinks):
#	print('Se toman los datos de categoryLinks.txt');
#else:
#	descargarCategorias();

# -------------  PASO 2 - Empresas ---------------

#categoryLinksEscaneados = [];

#resultados = [];
#loadFile('resultados.csv', resultados);
#for cat in categoryLinks:
#	descargarCategoriaEspecifica(cat.strip())
#	categoryLinksEscaneados.append(cat.strip())
#	saveFileExc('categoryLinks.txt', categoryLinks, categoryLinksEscaneados)

lista = []
#loadFile('numero.csv', lista);

#finales = [];
#for link in lista:
descargarCategorias()
saveFile('pino.txt', lista)
Пример #24
0
def escanearProducto(url):

    if (url.split('****')[0].strip() in listaEscaneados):
        print('Repetido:' + url.split('****')[0].strip())
        return

    print(
        url.split('****')[1].replace('___', '/').strip() + ' --- > ' +
        url.split('****')[0].strip())

    cant = 1
    payload = ""
    headers = {'content-type': "application/x-www-form-urlencoded"}

    html = descargarResultadoDataSinBeautiful(
        url.split('****')[0], 360, 10, payload, headers)

    pagina = BeautifulSoup(html, 'html.parser')

    try:
        codSKU = pagina.find_all(
            class_='product attribute sku')[0].text.replace('SKU', '').strip()
    except:
        return

    try:
        coloresReq = str(html).split('var colors = ')[1].split(';')[0].replace(
            "'", "").replace("\\", "")
        tallesReq = str(html).split('var sizes = ')[2].split(';')[0].replace(
            "'", "").replace("\\", "")

        datosLocos = descargarResultadoDataSinBeautiful(
            'http://www.priceshoes.com/services/search?action=getInventory&product='
            + codSKU.replace('ID-', '') + '&sizes=' + tallesReq + '=&colors=' +
            coloresReq + '&prodId=' + codSKU + '&color=', 360, 10, payload,
            headers)

        #	saveFile(codSKU+'pino.tt',[str(html)]);
        datosLocos = BeautifulSoup(datosLocos, 'html.parser')

        ingg = datosLocos.find_all('tr')

        vallus = {}
        nombreses = ingg[0].find_all('td')
        pos = 0
        for aaa in nombreses:
            vallus[pos] = aaa.text
            pos = pos + 1

        fasfasf = []

        for aaa in ingg:

            bbb = aaa.find_all('td')
            lala = []
            inde = 0

            for mm in bbb:
                #	print(mm)

                if (inde > 0):
                    try:
                        lala.append('[' + vallus[inde] + ']' + mm.text)
                    except:
                        pipipi = ''
                else:
                    lala.append(mm.text)
                inde = inde + 1

            fasfasf.append(' '.join(lala).replace(
                'Fecha de Llegada:No Disponible', ''))

        stockLococco = ''
        for ii in fasfasf:
            if not 'TIENDAS' in ii:
                stockLococco = stockLococco + ii + '\n'

    except:
        print('Fallo Tiendas')
        stockLococco = ''
        vallus = {}

    try:
        departamento = url.split('****')[1].split('___')[0]
    except:
        departamento = ''

    try:
        genero = url.split('****')[1].split('___')[1]
    except:
        genero = ''

    try:
        categoria = url.split('****')[1].split('___')[2]
    except:
        categoria = ''

    try:
        nombre = pagina.find_all(class_='base')[0].text.strip()
    except:
        nombre = ''

    try:
        foto = str(html).split('"img":"')

        aa = []
        for bb in foto:
            if ('/catalog/product/cache/image/'
                    in bb.split('"')[0].replace('\\', '')):
                aa.append(bb.split('"')[0].replace('\\', ''))

        foto = aa
    except:
        foto = ''

    try:
        colores = str(html).split('jsonSwatchConfig: {')[1].split(
            '}}}')[0].split('"label":"')

        aa = []
        for bb in colores:
            if (bb.split('"')[0].replace('\\', '')):
                aa.append(bb.split('"')[0].replace('\\', ''))

        colores = aa

    except:
        colores = []

    try:
        descripcion = pagina.find_all(
            class_='product attribute description')[0].text.strip()
    except:
        descripcion = ''

    try:
        descripcion2 = pagina.find_all(
            class_='data table additional-attributes')[0].text.replace(
                'DESCRIPCIÓN DE PRODUCTO',
                '').strip().replace('\n\n',
                                    '*****').replace('\n', ': ').replace(
                                        '*****',
                                        '\n').replace('\n: ', '\n').split('\n')
        descripcion2.pop(0)
        descripcion2 = '\n'.join(descripcion2)
    except:
        descripcion2 = ''

    try:
        talla = str(html).split('"Talla Ropa","options":[')[1].split(
            '"template":')[0]
        talla = talla.split('id')

        listaTall = []
        for tt in talla:
            if (not ('products":[]' in tt) and ('"label":"' in tt)):
                listaTall.append(tt.split('"label":"')[1].split('"')[0])
    except:
        listaTall = ['AGOTADO']

    try:
        imagenes = pagina.find_all('embed')[0]['src']
    except:
        imagenes = ''

    qq = []
    va = 'false'
    for aa in vallus:
        if (va == 'false'):
            va = 'true'
        else:
            qq.append(vallus[aa])

    valorString = '"' + codSKU + '";"' + departamento + '";"' + genero + '";"' + categoria + '";"' + url.split(
        '****'
    )[0] + '";"' + nombre + '";"' + ', '.join(
        qq
    ) + '";"' + stockLococco + '";"' + descripcion + '";"' + descripcion2 + '";"' + ', '.join(
        foto) + '";"' + ', '.join(colores) + '";'

    if ((valorString not in listaResultados)
            and (codSKU not in listaEscaneados)):
        listaResultados.append(valorString)
        listaEscaneados.append(url.split('****')[0].strip())

    else:
        print('Repetido ... ' + codSKU)

    saveFile('pino.csv', listaResultados)
    saveFile('prodEscaneados.csv', listaEscaneados)

    return
def escanearProducto(url):

    print(str(len(listaResultados) / len(listaProductos) * 100) + '  ' + url)

    conn = http.client.HTTPSConnection("articulo.mercadolibre.com.mx")
    headers = {}

    cant = 0
    conn.request("GET", url, headers=headers)
    res = conn.getresponse()
    data = res.read()

    #	try:
    aaa = data.decode("utf-8")
    pagina = BeautifulSoup(aaa, 'html.parser')

    campos = []

    campos.append(url)

    try:
        campos.append('"' +
                      pagina.find_all('h1', class_='item-title__primary ')
                      [0].text.strip().replace('"', '\'\'') + '"')
    except:
        return

    campos.append('"' + pagina.find_all('span', class_='price-tag')
                  [0].find_all('span', class_='price-tag-symbol')[0]
                  ['content'].strip().replace('"', '\'\'') + '"')

    carater = pagina.find_all('li', class_='specs-item specs-item-primary')

    marca = ''
    for car in carater:
        if ('Marca' in car.text and 'notebook' not in car.text):
            marca = car.text.split(':')[0].replace('Marca', '').strip() + '\n'
    campos.append('"' + marca + '"')

    modelo = ''
    for car in carater:
        if ('Modelo de notebook' in car.text):
            modelo = car.text.split(':')[0].replace('Modelo de notebook',
                                                    '').strip() + '\n'
    campos.append('"' + modelo + '"')

    compat = ''
    for car in carater:
        if ('Tamaño de pantalla' in car.text):
            compat = car.text.split(':')[0].replace('Tamaño de pantalla',
                                                    '').strip() + '\n'
    campos.append('"' + compat + '"')

    try:
        desc = pagina.find_all(
            'div',
            class_='item-description__text')[0].prettify().strip().replace(
                '<br>', '\n').replace('</br>', '')

        while ('    ' in desc):
            desc = desc.replace('    ', ' ')

        while ('  ' in desc):
            desc = desc.replace('  ', ' ')

        while ('\n \n' in desc):
            desc = desc.replace('\n \n', '\n')

        while ('\n\n' in desc):
            desc = desc.replace('\n\n', '\n')

        desc = desc.replace('<p>', '').replace('</p>',
                                               '').replace('</div>', '')
        desc = desc.replace('"', '\'\'')
        desc = desc.replace('<div class=\'\'item-description__text\'\'>', '')
    except:
        desc = ''

    try:
        desc = desc.split('ntanos y con gusto te ayudaremos.')[1].split(
            '_ _ _')[0].strip()
    except:
        desc = desc
    campos.append('"' + desc + '"')

    fotosAUX = pagina.find_all('img')
    fotos = []

    for aa in fotosAUX:
        if ('https://http2.mlstatic.com/' in aa.prettify()
                and 'NQ_NP' in aa['src']):
            campos.append('"' + aa['src'] + '"')

    listaResultados.append(';'.join(campos))

    saveFile('PANTALLAS-Escaneado.csv', listaResultados)

    return
Пример #26
0
def escanearProducto(url):

    print(
        str(len(listaResultados)) + ' ' +
        str(len(listaResultados) / len(listaProductos) * 100) + '  ' + url)

    conn = http.client.HTTPSConnection("articulo.mercadolibre.com.mx")
    headers = {}

    cant = 0
    conn.request("GET", url, headers=headers)
    res = conn.getresponse()
    data = res.read()

    #	try:
    aaa = data.decode("utf-8")
    pagina = BeautifulSoup(aaa, 'html.parser')

    campos = []

    campos.append(url)

    try:
        campos.append('"' +
                      pagina.find_all('h1', class_='item-title__primary ')
                      [0].text.strip().replace('"', '\'\'') + '"')
    except:
        return

    campos.append('"' + pagina.find_all('span', class_='price-tag')
                  [0].find_all('span', class_='price-tag-symbol')[0]
                  ['content'].strip().replace('"', '\'\'') + '"')

    carater = pagina.find_all('li', class_='specs-item specs-item-primary')

    marca = ''
    for car in carater:
        if ('Marca del cargador' in car.text):
            marca = car.text.split(':')[0].replace('Marca del cargador',
                                                   '').strip() + '\n'
    campos.append('"' + marca + '"')

    modelo = ''
    for car in carater:
        if ('Modelo del cargador' in car.text):
            modelo = car.text.split(':')[0].replace('Modelo del cargador',
                                                    '').strip() + '\n'
    campos.append('"' + modelo + '"')

    compat = ''
    for car in carater:
        if ('Notebooks compatibles' in car.text):
            compat = car.text.replace('Notebooks compatibles',
                                      '').strip() + '\n'
    campos.append('"' + compat + '"')

    carga = ''
    for car in carater:
        if ('Potencia' in car.text):
            carga = car.text.split(':')[0].replace('Potencia',
                                                   '').strip() + '\n'
    campos.append('"' + carga + '"')

    cone = ''
    for car in carater:
        if ('Conector de salida' in car.text):
            cone = car.text.split(':')[0].replace('Conector de salida',
                                                  '').strip() + '\n'
    campos.append('"' + cone + '"')

    try:
        desc = pagina.find_all(
            'div',
            class_='item-description__text')[0].prettify().strip().replace(
                '<br>', '\n').replace('</br>', '')
    except:
        try:
            desc = pagina.find_all(
                'div',
                class_='item-description__html-text')[0].find_all('p')[0].text
        except:
            desc = ''

    while ('    ' in desc):
        desc = desc.replace('    ', ' ')
        print('.')

    while ('  ' in desc):
        desc = desc.replace('  ', ' ')
        print(',')

    while ('\n \n' in desc):
        desc = desc.replace('\n \n', '\n')
        print(';')

    while ('\n\n' in desc):
        desc = desc.replace('\n\n', '\n')
        print(':')

    desc = desc.replace('<p>', '').replace('</p>', '').replace('</div>', '')
    desc = desc.replace('"', '\'\'')
    desc = desc.replace('<div class=\'\'item-description__text\'\'>', '')

    aux = desc

    try:
        desc = 'Disponible en ' + desc.split(
            '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -'
        )[0].split('Disponible en')[1].strip()
    except:
        desc = desc

    list1 = desc.replace(
        '==============================',
        '--------------------------------------------------------').replace(
            '======================',
            '--------------------------------------------------------').split(
                '--------------------------------------------------------')
    desc = ''
    for aa in list1:
        if ('Para saber si este producto es compatible' not in aa
                and 'NO ES NECESARIO CONFIRMAR' not in aa
                and 'AQUI PUEDES VER TODOS NUESTROS PRODUCTOS A' not in aa
                and 'Nuestras baterias son %100 nuevas' not in aa
                and 'Para saber si esta bateria es compatible' not in aa
                and '¿QUÉ HAY EN LA CAJA?' not in aa
                #and ( 'Compatible con' in aa or 'COMPATIBLE CON' in aa or 'MODELOS DE LAPTOP COMPATIBLES' in aa or 'Compatibilidad' in aa  or 'Reemplaza a los siguiente numeros de parte:' in aa )
            ):
            desc += aa.strip() + '\n\n'
        #else:
        #	print(aa.strip())

    if (desc.strip() == ''):
        desc = aux
        print('vacio ' + aux)

    campos.append('"' + desc + '"')

    fotosAUX = pagina.find_all('img')
    fotos = []

    for aa in fotosAUX:
        if ('https://http2.mlstatic.com/' in aa.prettify()
                and 'NQ_NP' in aa['src']):
            campos.append('"' + aa['src'] + '"')

    listaResultados.append(';'.join(campos))

    saveFile('CARGADORES-Escaneado.csv', listaResultados)

    return
Пример #27
0
            tab1[aa.split(',')[2]] = aa

    else:
        print(aa)

print('Cant Lista 1: ' + str(len(lista1)))
print('Cant Lista 2: ' + str(len(tab2)))
print('Cant Lista 1 - Lista 2: ' + str(len(tab1)))

lista82 = []

for aa in tab1:
    valor = tab1[aa]

    codigo = valor.split(',')[1]
    sku = valor.split(',')[2]
    nombre = valor.split(',')[3]
    marca = valor.split(',')[6]
    precio = valor.split(',')[9]
    try:
        valor_catego = cat[valor.split(',')[14].strip()]
    except:
        valor_catego = 'vacio'

    valor_nota = notas[sku]

    lista82.append(codigo + ',' + sku + ',' + nombre + ',' + marca + ',' +
                   valor_catego + ',,' + precio + ',,,,,,' + valor_nota)

saveFile("resultado.csv", lista82)
def escanearProducto(url):

		print( str(len(listaResultados)) + ' ' + str(len(listaResultados) / len(listaProductos) * 100) +  '  ' +url)


		conn = http.client.HTTPSConnection("articulo.mercadolibre.com.mx")
		headers = {    }

		cant =0
		conn.request("GET", url, headers=headers)
		res = conn.getresponse()
		data = res.read()

	#	try:
		aaa = data.decode("utf-8")
		pagina = BeautifulSoup(aaa, 'html.parser');
			

		campos = []
		campos.append(url);

		try:
			campos.append('"' +  pagina.find_all('h1', class_='item-title__primary ')[0].text.strip().replace('"','\'\'') + '"');
		except:
			return
		
		campos.append('"' +  pagina.find_all('span', class_='price-tag')[0].find_all('span', class_='price-tag-symbol')[0]['content'].strip().replace('"','\'\'') + '"' );
		
		carater = pagina.find_all('li', class_='specs-item specs-item-primary') 


		marca = ''	
		for car in carater:
			if ('Marca' in car.text and 'bater' not in car.text):
				marca= car.text.split(':')[0].replace('Marca','').strip() + '\n'
		campos.append( '"' + marca + '"' )

		modelo = ''	
		for car in carater:
			if ('Modelo de la batería' in car.text):
				modelo= car.text.split(':')[0].replace('Modelo de la batería','').strip() + '\n'

		if (modelo == ''):		
			for car in carater:
				if ('Modelo' in car.text):
					modelo= car.text.split(':')[0].replace('Modelo','').strip() + '\n'


		campos.append( '"' + modelo + '"' )

		compat = ''	
		for car in carater:
			if ('Compatibilidad con notebooks' in car.text):
				compat= car.text.replace('Compatibilidad con notebooks','').replace('Compatible','').strip() + '\n'
		campos.append( '"' + compat + '"' )

		carga = ''	
		for car in carater:
			if ('Capacidad de la batería' in car.text):
				carga= car.text.split(':')[0].replace('Capacidad de la batería','').strip() + '\n'
		campos.append( '"' + carga + '"' )

		
		try:
			desc = pagina.find_all('div', class_='item-description__text')[0].prettify()
			desc = desc.strip()
			desc = desc.replace('<br>','\n')
			desc = desc.replace('</br>','');

			while ('    ' in desc):
				desc = desc.replace('    ',' ')

			while ('  ' in desc):
				desc = desc.replace('  ',' ')

			while ('\n \n' in desc):
				desc = desc.replace('\n \n','\n')

			while ('\n\n' in desc):
				desc = desc.replace('\n\n','\n')

			desc = desc.replace('<p>','').replace('</p>','').replace('</div>','');
			desc = desc.replace('"','\'\'');
			desc = desc.replace('<div class=\'\'item-description__text\'\'>','')
		except:
			desc = ''

		aux = desc;


		descSuma = ''

		for aa in desc.split('======================'):
			if ( 'Para saber si este producto es compatible' not in aa and
				 'NO ES NECESARIO CONFIRMAR' not in aa and
				 'AQUI PUEDES VER TODOS NUESTROS PRODUCTOS A' not in aa and 
				 'Nuestras baterias son %100 nuevas' not in aa and
				 'Para saber si esta bateria es compatible' not in aa  and
				 'Bateria Para ' not in aa and 
 				 ( 'COMPATIBLE CON ' in aa or 'Compatible con ' in aa or 'REEMPLAZA A LOS SIGUIENTES' in aa or 'Numeros de parte compatibles' in aa ) and 
 				 'Bateria Laptop' not in aa):
				descSuma += aa.strip() + '\n\n';
#			else:
#				print(aa.strip())
		
		if (descSuma.strip() == ''):
			descSuma = aux;

		campos.append('"' +  descSuma  + '"' );

		fotosAUX = pagina.find_all('img');
		fotos = []

		for aa in fotosAUX:
			if ('https://http2.mlstatic.com/' in aa.prettify() and 'NQ_NP' in aa['src']):
				campos.append('"' +  aa['src'] + '"'  );


		listaResultados.append(';'.join(campos))

		saveFile('BATERIAS-Escaneado.csv', listaResultados)


		return;
Пример #29
0
import threading
import _thread
import time

#
#
# ********************************** Programa principal **********************************
#
#

files = []
loadFile('resultados1.csv', files)
loadFile('resultados2.csv', files)
loadFile('resultados3.csv', files)
loadFile('resultados4.csv', files)
loadFile('resultados5.csv', files)
loadFile('resultados6.csv', files)
loadFile('resultados7.csv', files)
loadFile('resultados8.csv', files)
loadFile('resultados9.csv', files)
loadFile('resultados10.csv', files)
loadFile('resultados11.csv', files)
loadFile('resultados12.csv', files)
loadFile('resultados13.csv', files)
loadFile('resultados14.csv', files)
loadFile('resultados15.csv', files)
loadFile('resultados16.csv', files)

saveFile('compiilado.csv', files)
Пример #30
0
def escanearProducto(url):

    if (url in listaDone):
        return

    porce = str(
        ((len(listaDone) + len(listaFallo)) / len(listaProductos)) * 100)
    print(porce[0:4] + '%  Escaneado ... ' + url)

    conn = http.client.HTTPSConnection("www.academy.com")
    headers = {}

    cant = 0
    conn.request("GET", url, headers=headers)
    res = conn.getresponse()
    data = res.read()

    #	try:
    #aaa = data.decode('unicode').encode('utf-8')
    #print(data)

    aaa = data.decode('utf8', 'replace')
    pagina = BeautifulSoup(aaa, 'html.parser')

    try:
        parentSKU = pagina.prettify().split('"parent_sku": "')[1].split('"')[0]
    except:
        listaFallo.append(url + '; No parentSKU')
        saveFile('productos_fail.csv', listaFallo)
        return
    titulo = pagina.find_all('h1', class_='rpdp-product-title')[0].text
    marca = pagina.prettify().split('itemprop="brand">')[1].split(
        '<')[0].strip()
    descripcion = pagina.prettify().split('itemprop="description">')[1].split(
        '<')[0].strip()

    categoria2 = pagina.prettify().split('id="brBreadCrum"')[1].split(
        'value="')[1].split('"')[0].replace('&amp;', '&')

    if (len(categoria2.split('|')) > 3):
        categoria = categoria2.split('|')[1] + ' --> ' + categoria2.split(
            '|')[2] + ' --> ' + categoria2.split('|')[3]
    else:
        categoria = categoria2.replace('Academy|', '')


#		conn.request("GET", 'https://www.academy.com/shop/AYRStoreLocatorServiceCmd?lat=40.8201966&lon=-96.70047629999999&ParentSKU=' + parentSKU, headers=headers)
#		res = conn.getresponse()
#		data = res.read()

#		aaa = data.decode("utf-8")
#		paginaStock = BeautifulSoup(aaa, 'html.parser');

    valores = pagina.prettify().split('catentry_id')
    for yyy in valores:

        if ('"Attributes" :' in yyy):

            resursos = yyy.split('"Attributes" :	{')[1].split('}')[0]
            bbb = resursos.split(',')

            foto0 = yyy.split('ItemImage" : "//')[1].split('"')[0]

            fotos = yyy.split('"DescAttributes" :	{')[1].split('}')[0]
            fotos = fotos.split(',')

            try:
                foto1 = fotos[0].split('"')[1].replace(
                    'image_', '').split('#//')[1].strip()
            except:
                foto1 = ''

            try:
                foto2 = fotos[1].split('"')[1].replace(
                    'image_', '').split('#//')[1].strip()
            except:
                foto2 = ''

            try:
                foto3 = fotos[2].split('"')[1].replace(
                    'image_', '').split('#//')[1].strip()
            except:
                foto3 = ''

            item = yyy.split('mfPartNumber')[1].split(',')[0].replace(
                '" : "', '').replace('"', '').strip()
            sku = yyy.split('partNumber')[1].split(',')[0].replace(
                '" : "', '').replace('"', '').strip()
            precio = yyy.split('listPrice')[1].split(',')[0].replace(
                '" : "', '').replace('"', '').replace(':', '').strip()

            try:
                color = bbb[0].split('"')[1].replace('Color_', '').strip()
            except:
                color = ''

            try:
                tamanio = bbb[1].split('"')[1].replace('Size_', '').strip()
            except:
                tamanio = ''

            listaResultados.append(parentSKU + ';' + item + ';' + sku + ';' +
                                   color + ';' + tamanio + ';' + titulo + ';' +
                                   marca + ';' + precio + ';' + descripcion +
                                   ';' + foto0 + ';' + foto1 + ';' + foto2 +
                                   ';' + foto3 + ';' + categoria + ';' + url)

    saveFile('productos_datos.csv', listaResultados)

    listaDone.append(url)
    saveFile('productos_ya_escaneados.csv', listaDone)

    return