def get_data_page(url_page, page_main): """ Captura as informações especificada dentro do arquivo convertido de HTML para python :param url_page: :param page_main: :return: """ obj_soup = html_convert_python(url_page) # lista para os dicionarios recebidos data = [] # como a classe das subpastas são diferentes é preciso criar uma função para diferenciar # a primeira request na página principal das demais if page_main: # caso a page_main seja True passa o conteudo referente a classe da pagina principal grid = 'Details-content--hidden-not-important js-navigation-container js-active-navigation-container d-md-block' else: # Recebe a classe de subpastas grid = 'Details-content--hidden-not-important js-navigation-container js-active-navigation-container d-block' # Primeiro pesquisamos a classe reponsavel por armazenar os arquivos que procuramos # e extraimos uma lista com apenas os que contem a tag role = 'row', após a priemira linha que nao precisamos for row in obj_soup.find(class_=grid).find_all(role="row")[1:]: try: # Pega o tipo de arquivo (Pasta, Arquivo, Symlink File) type_file = row.svg['aria-label'] # se caso nao seja diretorio todos os outros sao arquivos if type_file != 'Directory': type_file = 'File' except: type_file = 'File' # a url armazenada no href url = row.find('a').attrs['href'] # Nome do arquivo try: name = row.find('a').attrs['title'] except: # quando nao encontrar o nome do arquivo name = 'others' extension = 'Directory' # se caso o tipo do arquvio nao for diretorio, cria a extension if type_file != 'Directory': extension = name.split('.')[-1] # junta os dados em um dicionario e adiciona dentro de uma lista data.append({ 'type_file': type_file, 'url': url, 'name': name, 'extension': extension }) return data
def get_data_page_locate(url): soup = html_convert_python(url) data = [] for row in soup.find("ul", {"id": "postcode-list"}).find_all("li"): url = row.find('a').attrs['href'] data.append(url) return data
def get_data_page_postcode(url): soup = html_convert_python(url) data = [] for row in soup.find_all("div", {"class": "col-md-3 col-xs-12"}): url = row.a.string print(url) data.append(url) return data
def get_data_page_region(url): soup = html_convert_python(url) data = [] for row in soup.find_all("div", {"class": "col-md-3 col-xs-4"}): url = row.a.get('href') print(url) data.append(url) return data
def get_lines_bytes(url): # converte obj_soup = html_convert_python(url) # busca o texto infos = obj_soup.find( class_= 'text-mono f6 flex-auto pr-3 flex-order-2 flex-md-order-1 mt-2 mt-md-0' ).text formated = infos.replace('symbolic link', '').replace('executable file', '').split() # se o a str for um formato padrão -> {'lines': 10, 'KB': '10'} if len(formated) == 6: # info: Fazer-> Converter tudo para bytes # # retorna um dict com os itens coletados com o split return [int(formated[0]), f'{formated[-1]} {formated[-2]}'] else: # retorna um dict com uma chave com o valor 0 para linhas e a quantidade de dados # return {'lines': 0, formated[1]: formated[0]} return [0, f'{formated[1]} {formated[0]}']