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
Beispiel #2
0
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
Beispiel #3
0
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
Beispiel #4
0
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
Beispiel #5
0
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]}']