12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- from bs4 import BeautifulSoup
- import os
- import pickle
-
- def beut(tabela1, tabela2):
- with open('tabela.html', 'r') as file:
- soup = BeautifulSoup(file, "html5lib")
- soup.prettify()#reorganiza as tags
-
- tabela_all = soup.find_all('tbody')
-
- coluna1 = tabela_all[0].find_all('tr')
- coluna2 = tabela_all[1].find_all('tr')
-
- valores_return(coluna1, tabela1)
- valores_return(coluna2, tabela2)
-
-
- def valores_return(colunas, tabela):
-
- for coluna in colunas:
- celula = coluna.find_all('td')
- celula = [ele.text.strip() for ele in celula]
- tabela.append([ele for ele in celula if ele])
-
- def separar(palavra):
- numero = []
- for word in palavra:
- if word.isdigit():
- numero += word
- return (''.join(numero))
-
- def initsintatico(token, args,erro):
- if not(os.path.isfile('dicionario1.dtc')and os.path.isfile('dicionario2.dtc')):
- save()
-
- from sintatico import analisadorsintatico
- dict_tabela1 = load("dicionario1.dtc")
- dict_tabela2 = load("dicionario2.dtc")
- analisadorsintatico(dict_tabela1, dict_tabela2, token, args,erro)
-
- def load(filename):
- file = open(filename, "rb")
- return pickle.load(file)
- def save():
- tabela1 = []
- tabela2 = []
- beut(tabela1, tabela2)
- topo = tabela1[0]
- del tabela1[0]
- dict_tabela1 = {}
- dict_tabela2 = {}
- for linhas in tabela1:
- i = 0;
- for linha in linhas:
- if linha.isdigit() and i <= len(topo):
- dict_tabela1[(linhas[0], topo[i - 1])] = [int(linha)]
- i += 1
- for i in range(len(tabela2)):
- if (((tabela2[i][1]).split('::= '))[1]).split(" ")[0] != 'î':
- dict_tabela2[int(separar(tabela2[i][0]))] = ((((tabela2[i][1]).split('::= '))[1]).split())
- else:
- dict_tabela2[int(separar(tabela2[i][0]))] = []
- saveFile(dict_tabela1, "dicionario1.dtc")
- saveFile(dict_tabela2, "dicionario2.dtc")
-
- def saveFile(dict, filename):
- dicionario = open(filename, "wb")
- pickle.dump(dict, dicionario)
- dicionario.close()
|