Neculai Fantanaru

Totul depinde de cine conduce

Python: Adaugă în tagul html "meta description" primele 80 de cuvinte din secţiunea text

On August 16, 2022
, in
Python Scripts Examples by Neculai Fantanaru

Puteţi vizualiza întregul cod aici: https://pastebin.com/qmpbmnMa

Instalaţi Python.

Se da tagul html:

<meta name="description" content="Ma numesc Neculai Fantanaru, locuiesc in Iasi.">

Si avem urmatoarea sectiune de text:

<!-- ARTICOL START -->

Scopul lorem ipsum este de a crea un bloc de text cu aspect natural (propoziție, paragraf, pagină) care nu distrage atenția de la aspect. O practică nu lipsită de controverse, aranjarea paginilor cu text de umplere fără sens poate fi foarte utilă atunci când accentul este menit să fie pe design, nu pe conținut. Pasajul a cunoscut o creștere a popularității în anii 1960, când Letraset l-a folosit pe foile lor de transfer uscat și, din nou, în anii 90, când editorii desktop au inclus textul cu software-ul lor. Astăzi se vede peste tot pe web; pe șabloane, site-uri web și modele stoc. Utilizați generatorul nostru pentru a obține propriul dvs. sau citiți mai departe pentru istoria autorizată a lui lorem ipsum.

<!-- ARTICOL FINAL -->

OUTPUT: After running the python code, python will take 80 words from the text section, and will add them to the meta description html tag:

<meta name="description" content="Ma numesc Neculai Fantanaru, locuiesc in Iasi. Scopul lorem ipsum este de a crea un bloc de text cu aspect natural (propoziție, paragraf, pagină) care nu distrage atenția de la aspect. O practică nu lipsită de controverse, aranjarea paginilor cu text de umplere fără sens poate fi foarte utilă atunci când accentul este menit să fie pe design, nu pe conținut. Pasajul a cunoscut o creștere a popularității în anii 1960, când Letraset l-a folosit pe foile lor de transfer uscat și, din">

De asemenea, am facut si un dictionar care transforma automat diacriticele, atunci cand se face trecerea cuvintelor dintr-o parte in alta:

import requests
import re
import os

cale_folder_html = r"d:\\Folder1\\fisiere_html_modificate"
extension_file = ".html"

def read_text_from_file(file_path):
    """
    Aceasta functie returneaza continutul unui fisier.
    file_path: calea catre fisierul din care vrei sa citesti
    """
    with open(file_path, encoding='utf8') as f:
        text = f.read()
        return text


def write_to_file(text, file_path):
    """
    Aceasta functie scrie un text intr-un fisier.
    text: textul pe care vrei sa il scrii
    file_path: calea catre fisierul in care vrei sa scrii
    """
    with open(file_path, 'wb') as f:
        f.write(text.encode('utf8', 'ignore'))


print('Going through folder')
amount = 1

# prelucrare continut
dict_simboluri = dict()
dict_simboluri['&#259;'] = 'a'
dict_simboluri['&#226;'] = 'a'
dict_simboluri['&atilde;'] = 'a'
dict_simboluri['&acirc;'] = 'a'
dict_simboluri['&#x103;'] = 'a'
dict_simboluri['&#xE2;'] = 'a'
dict_simboluri['?'] = 'a'
dict_simboluri['?'] = 'a'
dict_simboluri['â'] = 'a'
dict_simboluri['a'] = 'a'
dict_simboluri['ã'] = 'a'
dict_simboluri['à'] = 'a'
dict_simboluri['á'] = 'a'
dict_simboluri['å'] = 'a'
dict_simboluri['ä'] = 'a'
dict_simboluri['â'] = 'a'

dict_simboluri['&hellip;'] = ''
dict_simboluri['&#8230;'] = ''
dict_simboluri['\&quot;'] = ''
dict_simboluri['&#8211;'] = '- '
dict_simboluri['  '] = ' '
dict_simboluri['Â '] = ' '
dict_simboluri['Â '] = ' '
dict_simboluri['&#039;'] = '\''
dict_simboluri['"'] = '\''
dict_simboluri['"'] = '\''
dict_simboluri['['] = ''
dict_simboluri[']'] = ''
dict_simboluri['/'] = ''
dict_simboluri['}'] = ''
dict_simboluri['{'] = ''

dict_simboluri['&icirc;'] = 'i'
dict_simboluri['&#206;'] = 'i'
dict_simboluri['&#238;'] = 'i'
dict_simboluri['&#xEE;'] = 'i'
dict_simboluri['&#xCE;'] = 'i'
dict_simboluri['&#206;'] = 'i'
dict_simboluri['&#xEE;'] = 'i'
dict_simboluri['&#xCE;'] = 'i'
dict_simboluri['?'] = 'i'
dict_simboluri['î'] = 'i'
dict_simboluri['&Icirc;'] = 'I'
dict_simboluri['I'] = 'I'
dict_simboluri['Ĩ'] = 'I'
dict_simboluri['Î'] = 'I'
dict_simboluri['Î'] = 'I'
dict_simboluri['i'] = 'i'
dict_simboluri['i'] = 'i'
dict_simboluri['í'] = 'i'
dict_simboluri['!'] = ' '
dict_simboluri['('] = '-'
dict_simboluri[')'] = ' '
dict_simboluri['  '] = ' '
dict_simboluri[',,'] = ' '
dict_simboluri['I'] = 'I'
dict_simboluri['é'] = 'e'
dict_simboluri['ê'] = 'e'
dict_simboluri['é'] = 'e'
dict_simboluri['a©'] = 'e'
dict_simboluri['è'] = 'e'
dict_simboluri['ë'] = 'e'
dict_simboluri['Ë'] = 'e'


dict_simboluri['&#537;'] = 's'
dict_simboluri['&#536;'] = 's'
dict_simboluri['&#350;'] = 's'
dict_simboluri['&#x219;'] = 's'
dict_simboluri['&#351;'] = 's'
dict_simboluri['s'] = 's'
dict_simboluri['?'] = 's'
dict_simboluri['S'] = 'S'
dict_simboluri['?'] = 'S'
dict_simboluri['?'] = 'S'
dict_simboluri['š'] = 's'
dict_simboluri['s'] = 's'
dict_simboluri['?'] = 's'
dict_simboluri['?'] = 's'

dict_simboluri['&quot;'] = ''
dict_simboluri['&#8217;'] = ''
dict_simboluri['&rdquo;'] = ''
dict_simboluri['&rsquo;'] = ''
dict_simboluri['&bdquo;'] = ''
dict_simboluri['&ldquo;'] = ''
dict_simboluri['&#8222;'] = ''
dict_simboluri['&#8220;'] = ''
dict_simboluri['&#8221;'] = ''
dict_simboluri['&lt;'] = ''
dict_simboluri['&lt;'] = ''
dict_simboluri['«'] = ''
dict_simboluri['»'] = ''
dict_simboluri['"'] = ''
dict_simboluri['"'] = ''
dict_simboluri['"'] = ''
dict_simboluri[':'] = ''
dict_simboluri['&amp;'] = ''

dict_simboluri['&#539;'] = 't'
dict_simboluri['&#355;'] = 't'
dict_simboluri['&#354;'] = 't'
dict_simboluri['&#x21B;'] = 't'
dict_simboluri['t'] = 't'
dict_simboluri['?'] = 't'
dict_simboluri['T'] = 'T'
dict_simboluri['?'] = 'T'
dict_simboluri['t'] = 't'
dict_simboluri['?'] = 't'

for filename in os.listdir(cale_folder_html):
        if filename == 'y_key_e479323ce281e459.html' or filename == 'directory.html':
            continue
        if filename.endswith('.html'):
            cale_fisier_html = cale_folder_html + "\\" + filename
            html_text = read_text_from_file(cale_fisier_html)
            articol_pattern = re.compile('<!-- ARTICOL START -->([\s\S]*?)<!-- ARTICOL FINAL -->[\s\S]*?')
            articol_text = re.findall(articol_pattern, html_text)

            if len(articol_text) > 0:
                articol_text = articol_text[0]
                meta_description = re.search('<meta name="description".+>', html_text)[0]
                initial_meta_description = re.search('<meta name="description" content="(.+)".*>', html_text)[1]
                para_pattern = re.compile('<p.+>(.*?)</p>')
                para = re.findall(para_pattern, articol_text)
                if len(para) > 0:
                    lista_cuvinte = list()
                    for txt in para:
                        for simbol in dict_simboluri.keys():
                            txt = txt.replace(simbol, dict_simboluri[simbol])
                        lista_cuvinte.extend(re.findall(r'[a-zA-Z\-\']+', txt))

                    content = " ".join(lista_cuvinte[:80])

                    new_meta_description = re.sub(r'content=".+"', f'content="{content}"', meta_description)
                    html_text = html_text.replace(meta_description, new_meta_description)

                    print(f'{filename} parsed ({amount})')
                    amount += 1
                    write_to_file(html_text, cale_fisier_html)

                else:
                    print("Nu am gasit tag-uri cu text_obisnuit2: ", filename)
                    continue
            else:
                print("Nu are ARTICOL START/FINAL: ", filename)
                continue
        else:
            continue

 

That's all folks.

If you like my code, then make me a favor: translate your website into Romanian, "ro".

Also, you can see other Python Codes: VERSION 2 of this code. Or Version 3 OR Version 4 OR Version 5

Alatura-te Comunitatii Neculai Fantanaru
Cele 63 de calităţi ale liderului
Cele 63 de calităţi ale liderului

De ce să citeşti această carte? Pentru că este hotărâtoare pentru optimizarea performanţelor tale. Fiindcă pune accent mai mult pe latura umană decât pe conceptul de business, ceea ce permite cu uşurinţă citirea şi înţelegerea ei.

Leadership - Magia măiestriei
Leadership - Magia măiestriei

Trăsătura esenţială a acestei cărţi, faţă de altele existente pe piaţă din acelaşi domeniu, este aceea că descrie, prin exemple, competenţele ideale ale unui lider. N-am susţinut niciodată că eşte uşor să devii un lider foarte bun, dar dacă veţi urma pas cu pas...

Atingerea maestrului
Atingerea maestrului

Pentru unii lideri „a conduce” înseamnă mai mult a juca un joc de şah, un joc de inteligenţă şi perspicacitate; pentru alţii un joc de noroc, un joc pe care cred că-l pot câştiga mergând de fiecare dată la risc şi pariind totul pe o singură carte.

Leadership Puzzle
Leadership Puzzle

Am scris această carte, care combină într-un mod simplu dezvoltarea personală cu leadershipul, ca pe un joc de puzzle, unde trebuie să combinaţi toate piesele date pentru a reconstitui imaginea de ansamblu.

Performanţa în conducere
Leadership - Pe înţelesul tuturor

Scopul acestei cărţi este de a vă oferi cât mai multe informaţii preţioase prin exemple concrete, şi de a vă arăta o cale prin care să dobândiţi capacitatea de a-i determina pe ceilalţi să vadă lucrurile din aceeaşi perspectivă ca dumneavoastră.

Leadership - Pe înţelesul tuturor
Leadership - Pe înţelesul tuturor

Urmăresc în rândurile acestei cărţi să trezesc interesul omului obişnuit pentru acţiune şi succes. Mesajul acestui volum este că o naţiune puternică este format din oameni puternici şi de succes. Iar fiecare din noi are potenţial, deci succes…