SCRAPPING con Python extrayendo Unicode para Criptografia!!! [Mini Curso Python Parte 2]steemCreated with Sketch.

in #spanish7 years ago (edited)

Hoy les traigo un código como abre boca ya mas tarde cuando vuelva me dispondré a explicarlo mejor:

# -*- coding: utf-8 -*-
import urllib2
from bs4 import BeautifulSoup
import re
from prettytable import PrettyTable
import os, subprocess, re

try:
    f=open("lista_en.txt")
    lista_bajada =  f.read()
    f.close()
except:
    crear_LISTA_unicode = subprocess.call("touch lista_en.txt", shell=True)
    f=open("lista_en.txt","w")
    f.write(str(lista_unicode))
    f.close()
    f=open("lista_en.txt")
    lista_bajada =  f.read()
    f.close()
if lista_bajada == False:
    url_unicode = "https://www.sciencebuddies.org/science-fair-projects/references/table-of-8-bit-ascii-character-codes"
    page = urllib2.urlopen(url_unicode)
    soup = BeautifulSoup(page, "lxml")
    name_box = soup.find('div', attrs={'class': 'content-table page-break-avoid'}) 
    name_boxaaa = soup.find('table')  
    table_headers = name_boxaaa.find_all('tr')
    contable = 0
    lista_unicode = []
    for row in table_headers:
    #if contable < 3:
        lista_unicode.append(str(row))
        contable +=1
    print contable
else:
    contable = 0
    lista_bajada = eval(lista_bajada)
    diccionario_unicode = {}
    for TRs in lista_bajada:
        contable +=1
        print contable
        print TRs
        
        TDs_por_cada_TR = re.findall('<td>([\S* ]+)</td>', TRs)
        Lista_tds = []
        for TDs in TDs_por_cada_TR:
            Lista_tds.append(TDs)
        if "&lt;" in TRs:
            pop_despues= Lista_tds.pop(-1)
            Lista_tds.append("&lt;")
            Lista_tds.append(pop_despues)
        print Lista_tds
        valor = Lista_tds[4]
        Lista_tds.pop(4)
        print Lista_tds
        print Lista_tds[4]
        diccionario_unicode[valor]= Lista_tds
        print " "
        print " "
print diccionario_unicode
### Revisamos el Valor de A para hacernos una idea
print diccionario_unicode["A"]


Breve introducción  del código:

  • Revisa si existe un archivo si no existe lo crea
  • Abre el archivo, si el contenido es False extrae los datos de la WEB o URL que le pasamos
  • Luego va a la tabla que necesitamos y extrae los TR
  • Con Expresiones Regulares extrae todos los TD de los TRs que hemos sacado
  • Arreglamos un poco los TDs para pasarlo a una Lista
  • Luego creamos un Diccionario y le pasamos como Valor el Value de la Tabla y todos los demas los dejamos en la lista como Clave del Valor que hemos pasado

El código nos va a permitir dar un Valor y mandarnos el Octal, Hexadecimal o Decimal del Carácter.

Hoy o mañana lo explico linea a linea así que atentos.

La salida para el Valor A es esta: ['065', '101', '041', '0100 0001', '\xc2\xa0']



Feliz Día Dios les Bendiga!!!

Coin Marketplace

STEEM 0.19
TRX 0.15
JST 0.029
BTC 62948.49
ETH 2583.15
USDT 1.00
SBD 2.74