SCRAPPING con Python extrayendo Unicode para Criptografia!!! [Mini Curso Python Parte 2]
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 "<" in TRs:
pop_despues= Lista_tds.pop(-1)
Lista_tds.append("<")
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!!!