Nick_34

Add 80 words from text section to meta tag html section

Aug 16th, 2022 (edited)
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 6.04 KB | None | 0 0
  1. ------------------------
  2. EXPLANATION:
  3.  
  4. ROMANIAN: https://neculaifantanaru.com/python-adauga-in-tagul-html-meta-name-description-primele-80-de-cuvinte-din-sectiunea-text.html
  5. ENGLISH:  https://neculaifantanaru.com/en/python-add-the-first-80-words-of-the-text-section-to-the-meta-description-html-tag.html
  6. ------------------------
  7.  
  8.  
  9. import requests
  10. import re
  11. import os
  12.  
  13. cale_folder_html = r"d:\\Folder1\\fisiere_html_modificate"
  14. extension_file = ".html"
  15.  
  16. def read_text_from_file(file_path):
  17.     """
  18.    Aceasta functie returneaza continutul unui fisier.
  19.    file_path: calea catre fisierul din care vrei sa citesti
  20.    """
  21.     with open(file_path, encoding='utf8') as f:
  22.         text = f.read()
  23.         return text
  24.  
  25.  
  26. def write_to_file(text, file_path):
  27.     """
  28.    Aceasta functie scrie un text intr-un fisier.
  29.    text: textul pe care vrei sa il scrii
  30.    file_path: calea catre fisierul in care vrei sa scrii
  31.    """
  32.     with open(file_path, 'wb') as f:
  33.         f.write(text.encode('utf8', 'ignore'))
  34.  
  35.  
  36. print('Going through folder')
  37. amount = 1
  38.  
  39. # prelucrare continut
  40. dict_simboluri = dict()
  41. dict_simboluri['ă'] = 'a'
  42. dict_simboluri['â'] = 'a'
  43. dict_simboluri['ã'] = 'a'
  44. dict_simboluri['â'] = 'a'
  45. dict_simboluri['ă'] = 'a'
  46. dict_simboluri['â'] = 'a'
  47. dict_simboluri['ӑ'] = 'a'
  48. dict_simboluri['ȃ'] = 'a'
  49. dict_simboluri['â'] = 'a'
  50. dict_simboluri['ă'] = 'a'
  51. dict_simboluri['ã'] = 'a'
  52. dict_simboluri['à'] = 'a'
  53. dict_simboluri['á'] = 'a'
  54. dict_simboluri['å'] = 'a'
  55. dict_simboluri['ä'] = 'a'
  56. dict_simboluri['â'] = 'a'
  57.  
  58. dict_simboluri['…'] = ''
  59. dict_simboluri['…'] = ''
  60. dict_simboluri['\"'] = ''
  61. dict_simboluri['–'] = '- '
  62. dict_simboluri['  '] = ' '
  63. dict_simboluri['Â '] = ' '
  64. dict_simboluri['Â '] = ' '
  65. dict_simboluri['''] = '\''
  66. dict_simboluri['„'] = '\''
  67. dict_simboluri['”'] = '\''
  68. dict_simboluri['['] = ''
  69. dict_simboluri[']'] = ''
  70. dict_simboluri['/'] = ''
  71. dict_simboluri['}'] = ''
  72. dict_simboluri['{'] = ''
  73.  
  74. dict_simboluri['î'] = 'i'
  75. dict_simboluri['Î'] = 'i'
  76. dict_simboluri['î'] = 'i'
  77. dict_simboluri['î'] = 'i'
  78. dict_simboluri['Î'] = 'i'
  79. dict_simboluri['Î'] = 'i'
  80. dict_simboluri['î'] = 'i'
  81. dict_simboluri['Î'] = 'i'
  82. dict_simboluri['ȋ'] = 'i'
  83. dict_simboluri['î'] = 'i'
  84. dict_simboluri['Î'] = 'I'
  85. dict_simboluri['Ĩ'] = 'I'
  86. dict_simboluri['Ĩ'] = 'I'
  87. dict_simboluri['Î'] = 'I'
  88. dict_simboluri['Î'] = 'Ĩ'
  89. dict_simboluri['ī'] = 'i'
  90. dict_simboluri['ĭ'] = 'i'
  91. dict_simboluri['í'] = 'i'
  92. dict_simboluri['!'] = ' '
  93. dict_simboluri['('] = '-'
  94. dict_simboluri[')'] = ' '
  95. dict_simboluri['  '] = ' '
  96. dict_simboluri[',,'] = ' '
  97. dict_simboluri['Ĩ'] = 'I'
  98. dict_simboluri['é'] = 'e'
  99. dict_simboluri['ê'] = 'e'
  100. dict_simboluri['é'] = 'e'
  101. dict_simboluri['a©'] = 'e'
  102. dict_simboluri['è'] = 'e'
  103. dict_simboluri['ë'] = 'e'
  104. dict_simboluri['Ë'] = 'e'
  105.  
  106.  
  107. dict_simboluri['ș'] = 's'
  108. dict_simboluri['Ș'] = 's'
  109. dict_simboluri['Ş'] = 's'
  110. dict_simboluri['ș'] = 's'
  111. dict_simboluri['ş'] = 's'
  112. dict_simboluri['ş'] = 's'
  113. dict_simboluri['ș'] = 's'
  114. dict_simboluri['Ş'] = 'S'
  115. dict_simboluri['Ș'] = 'S'
  116. dict_simboluri['Ș'] = 'S'
  117. dict_simboluri['š'] = 's'
  118. dict_simboluri['ś'] = 's'
  119. dict_simboluri['ș'] = 's'
  120. dict_simboluri['ṣ'] = 's'
  121.  
  122. dict_simboluri['"'] = ''
  123. dict_simboluri['’'] = ''
  124. dict_simboluri['”'] = ''
  125. dict_simboluri['’'] = ''
  126. dict_simboluri['„'] = ''
  127. dict_simboluri['“'] = ''
  128. dict_simboluri['„'] = ''
  129. dict_simboluri['“'] = ''
  130. dict_simboluri['”'] = ''
  131. dict_simboluri['<'] = ''
  132. dict_simboluri['<'] = ''
  133. dict_simboluri['«'] = ''
  134. dict_simboluri['»'] = ''
  135. dict_simboluri['“'] = ''
  136. dict_simboluri['”'] = ''
  137. dict_simboluri['"'] = ''
  138. dict_simboluri[':'] = ''
  139. dict_simboluri['&'] = ''
  140.  
  141. dict_simboluri['ț'] = 't'
  142. dict_simboluri['ţ'] = 't'
  143. dict_simboluri['Ţ'] = 't'
  144. dict_simboluri['ț'] = 't'
  145. dict_simboluri['ţ'] = 't'
  146. dict_simboluri['ț'] = 't'
  147. dict_simboluri['Ţ'] = 'T'
  148. dict_simboluri['Ț'] = 'T'
  149. dict_simboluri['ť'] = 't'
  150. dict_simboluri['ṭ'] = 't'
  151.  
  152. for filename in os.listdir(cale_folder_html):
  153.         if filename == 'y_key_e479323ce281e459.html' or filename == 'directory.html':
  154.             continue
  155.         if filename.endswith('.html'):
  156.             cale_fisier_html = cale_folder_html + "\\" + filename
  157.             html_text = read_text_from_file(cale_fisier_html)
  158.             articol_pattern = re.compile('<!-- ARTICOL START -->([\s\S]*?)<!-- ARTICOL FINAL -->[\s\S]*?')
  159.             articol_text = re.findall(articol_pattern, html_text)
  160.  
  161.             if len(articol_text) > 0:
  162.                 articol_text = articol_text[0]
  163.                 meta_description = re.search('<meta name="description".+>', html_text)[0]
  164.                 initial_meta_description = re.search('<meta name="description" content="(.+)".*>', html_text)[1]
  165.                 para_pattern = re.compile('<p.+>(.*?)</p>')
  166.                 para = re.findall(para_pattern, articol_text)
  167.                 if len(para) > 0:
  168.                     lista_cuvinte = list()
  169.                     for txt in para:
  170.                         for simbol in dict_simboluri.keys():
  171.                             txt = txt.replace(simbol, dict_simboluri[simbol])
  172.                         lista_cuvinte.extend(re.findall(r'[a-zA-Z\-\']+', txt))
  173.  
  174.                     content = " ".join(lista_cuvinte[:80])
  175.  
  176.                     new_meta_description = re.sub(r'content=".+"', f'content="{content}"', meta_description)
  177.                     html_text = html_text.replace(meta_description, new_meta_description)
  178.  
  179.                     print(f'{filename} parsed ({amount})')
  180.                     amount += 1
  181.                     write_to_file(html_text, cale_fisier_html)
  182.  
  183.                 else:
  184.                     print("Nu am gasit tag-uri cu text_obisnuit2: ", filename)
  185.                     continue
  186.             else:
  187.                 print("Nu are ARTICOL START/FINAL: ", filename)
  188.                 continue
  189.         else:
  190.             continue
  191.  
Advertisement
Add Comment
Please, Sign In to add comment