Advertisement
nicuf

Replacing diacritics marks in html tags

Apr 23rd, 2022
1,284
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 7.63 KB | None | 0 0
  1. ------------------
  2. EXPLANATION:
  3.  
  4. ENGLISH: https://neculaifantanaru.com/en/python-scripts-examples.html
  5. ROMANIAN: https://neculaifantanaru.com/python-scripts-examples.html
  6. ------------------
  7.  
  8.  
  9. import requests
  10. import re
  11. import os
  12.  
  13. cale_folder_html = r"d:\\Folder1"
  14. extension_file = ".html" or ".htm"
  15.  
  16.  
  17. def read_text_from_file(file_path):
  18.     """
  19.    Aceasta functie returneaza continutul unui fisier.
  20.    file_path: calea catre fisierul din care vrei sa citesti
  21.    """
  22.     with open(file_path, encoding='utf8') as f:
  23.         text = f.read()
  24.         return text
  25.  
  26.  
  27. def write_to_file(text, file_path):
  28.     """
  29.    Aceasta functie scrie un text intr-un fisier.
  30.    text: textul pe care vrei sa il scrii
  31.    file_path: calea catre fisierul in care vrei sa scrii
  32.    """
  33.     with open(file_path, 'wb') as f:
  34.         f.write(text.encode('utf8', 'ignore'))
  35.  
  36.  
  37. print('Going through folder')
  38. amount = 1
  39.  
  40. for filename in os.listdir(cale_folder_html):
  41.         if filename == 'y_key_e479323ce281e459.html' or filename == 'directory.html':
  42.             continue
  43.         if filename.endswith('.html') or filename.endswith('.htm'):
  44.             cale_fisier_html = cale_folder_html + "\\" + filename
  45.             html_text = read_text_from_file(cale_fisier_html)
  46.  
  47.             # preluam description
  48.             meta_description = re.search('<meta name="description".+>', html_text)[0]
  49.             description_pattern = re.compile('<meta name="description" content="(.*?)>')
  50.             description = re.findall(description_pattern, html_text)
  51.  
  52.             if len(description) != 0:
  53.                 description = description[0]
  54.  
  55.                 title_pattern = re.compile('<title>(.*?)</title>')
  56.                 title = re.search('<title>.+</title>', html_text)[0]
  57.                 title_text = re.findall(title_pattern, html_text)
  58.                 if len(title_text) != 0:
  59.                     title_text = title_text[0]
  60.  
  61.                 # prelucrare continut
  62.                 dict_simboluri = dict()
  63.                 dict_simboluri['&#259;'] = 'a'
  64.                 dict_simboluri['&#226;'] = 'a'
  65.                 dict_simboluri['&atilde;'] = 'a'
  66.                 dict_simboluri['&acirc;'] = 'a'
  67.                 dict_simboluri['&#x103;'] = 'a'
  68.                 dict_simboluri['&#xE2;'] = 'a'
  69.                 dict_simboluri['ӑ'] = 'a'
  70.                 dict_simboluri['ȃ'] = 'a'
  71.                 dict_simboluri['â'] = 'a'
  72.                 dict_simboluri['ă'] = 'a'
  73.                 dict_simboluri['ã'] = 'a'
  74.                 dict_simboluri['à'] = 'a'
  75.                 dict_simboluri['á'] = 'a'
  76.                 dict_simboluri['å'] = 'a'
  77.                 dict_simboluri['ä'] = 'a'
  78.                 dict_simboluri['â'] = 'a'
  79.  
  80.                 dict_simboluri['&hellip;'] = ''
  81.                 dict_simboluri['&#8230;'] = ''
  82.                 dict_simboluri['\&quot;'] = ''
  83.                 dict_simboluri['&#8211;'] = '- '
  84.                 dict_simboluri['  '] = ' '
  85.                 dict_simboluri['Â '] = ' '
  86.                 dict_simboluri['Â '] = ' '
  87.                 dict_simboluri['&#039;'] = '\''
  88.                 dict_simboluri['„'] = '\''
  89.                 dict_simboluri['”'] = '\''
  90.                 dict_simboluri['['] = ''
  91.                 dict_simboluri[']'] = ''
  92.                 dict_simboluri['/'] = ''
  93.                 dict_simboluri['}'] = ''
  94.                 dict_simboluri['{'] = ''
  95.  
  96.                 dict_simboluri['&icirc;'] = 'i'
  97.                 dict_simboluri['&#206;'] = 'i'
  98.                 dict_simboluri['&#238;'] = 'i'
  99.                 dict_simboluri['&#xEE;'] = 'i'
  100.                 dict_simboluri['&#xCE;'] = 'i'
  101.                 dict_simboluri['&#206;'] = 'i'
  102.                 dict_simboluri['&#xEE;'] = 'i'
  103.                 dict_simboluri['&#xCE;'] = 'i'
  104.                 dict_simboluri['ȋ'] = 'i'
  105.                 dict_simboluri['î'] = 'i'
  106.                 dict_simboluri['&Icirc;'] = 'I'
  107.                 dict_simboluri['Ĩ'] = 'I'
  108.                 dict_simboluri['Ĩ'] = 'I'
  109.                 dict_simboluri['Î'] = 'I'
  110.                 dict_simboluri['Î'] = 'Ĩ'
  111.                 dict_simboluri['ī'] = 'i'
  112.                 dict_simboluri['ĭ'] = 'i'
  113.                 dict_simboluri['í'] = 'i'
  114.                 dict_simboluri['!'] = ' '
  115.                 dict_simboluri['('] = '-'
  116.                 dict_simboluri[')'] = ' '
  117.                 dict_simboluri['  '] = ' '
  118.                 dict_simboluri[',,'] = ' '
  119.                 dict_simboluri['Ĩ'] = 'I'
  120.                 dict_simboluri['é'] = 'e'
  121.                 dict_simboluri['ê'] = 'e'
  122.                 dict_simboluri['é'] = 'e'
  123.                 dict_simboluri['a©'] = 'e'
  124.                 dict_simboluri['è'] = 'e'
  125.                 dict_simboluri['ë'] = 'e'
  126.                 dict_simboluri['Ë'] = 'e'
  127.  
  128.  
  129.                 dict_simboluri['&#537;'] = 's'
  130.                 dict_simboluri['&#536;'] = 's'
  131.                 dict_simboluri['&#350;'] = 's'
  132.                 dict_simboluri['&#x219;'] = 's'
  133.                 dict_simboluri['&#351;'] = 's'
  134.                 dict_simboluri['ş'] = 's'
  135.                 dict_simboluri['ș'] = 's'
  136.                 dict_simboluri['Ş'] = 'S'
  137.                 dict_simboluri['Ș'] = 'S'
  138.                 dict_simboluri['Ș'] = 'S'
  139.                 dict_simboluri['š'] = 's'
  140.                 dict_simboluri['ś'] = 's'
  141.                 dict_simboluri['ș'] = 's'
  142.                 dict_simboluri['ṣ'] = 's'
  143.  
  144.                 dict_simboluri['&quot;'] = ''
  145.                 dict_simboluri['&#8217;'] = ''
  146.                 dict_simboluri['&rdquo;'] = ''
  147.                 dict_simboluri['&rsquo;'] = ''
  148.                 dict_simboluri['&bdquo;'] = ''
  149.                 dict_simboluri['&ldquo;'] = ''
  150.                 dict_simboluri['&#8222;'] = ''
  151.                 dict_simboluri['&#8220;'] = ''
  152.                 dict_simboluri['&#8221;'] = ''
  153.                 dict_simboluri['&lt;'] = ''
  154.                 dict_simboluri['&lt;'] = ''
  155.                 dict_simboluri['«'] = ''
  156.                 dict_simboluri['»'] = ''
  157.                 dict_simboluri['“'] = ''
  158.                 dict_simboluri['”'] = ''
  159.                 dict_simboluri['"'] = ''
  160.                 dict_simboluri[':'] = ''
  161.                 dict_simboluri['&amp;'] = ''
  162.  
  163.                 dict_simboluri['&#539;'] = 't'
  164.                 dict_simboluri['&#355;'] = 't'
  165.                 dict_simboluri['&#354;'] = 't'
  166.                 dict_simboluri['&#x21B;'] = 't'
  167.                 dict_simboluri['ţ'] = 't'
  168.                 dict_simboluri['ț'] = 't'
  169.                 dict_simboluri['Ţ'] = 'T'
  170.                 dict_simboluri['Ț'] = 'T'
  171.                 dict_simboluri['ť'] = 't'
  172.                 dict_simboluri['ṭ'] = 't'
  173.  
  174.                 for simbol in dict_simboluri.keys():
  175.                     description = description.replace(simbol, dict_simboluri[simbol])
  176.  
  177.                 for simbol in dict_simboluri.keys():
  178.                     title_text = title_text.replace(simbol, dict_simboluri[simbol])
  179.                 print(title_text)
  180.  
  181.                 #meta_description = re.search('<meta name="description".+>', html_text)[0]
  182.                 new_meta_description = re.sub(r'content=".+"', f'content="{description}"', meta_description)
  183.                 new_title = re.sub(r'<title>.+</title>', f'<title>{title_text}</title>', title)
  184.                 html_text = html_text.replace(meta_description, new_meta_description)
  185.                 html_text = html_text.replace(title, new_title)
  186.  
  187.                 print(f'{filename} parsed ({amount})')
  188.                 amount += 1
  189.                 write_to_file(html_text, cale_fisier_html)
  190.             else:
  191.                 print("Text has no description")
  192.         else:
  193.             continue
  194.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement