ro  fr  en  es  pt  ar  zh  hi  de  ru
ART 2.0 ART 3.0 ART 4.0 ART 5.0 ART 6.0 Pinterest

Regex & python: fandikana miaraka amin'ny Gloutsoup sy Elecl irery ireo Tags HTML ihany no misy ny teny fanalahidy sasany

On May 05, 2021, in Leadership and Attitude, by Neculai Fantanaru

Azonao atao ny mijery ny kaody feno:HTTPS: // passatin.com / nk nm4di Snow

hametrakaPython. Avy eo, apetraho ireto tranomboky roa ireto amin'ny alàlan'ny mpandika teny (cmd) amin'ny Windows10:

py- m pip install pydeepl
py -m pip install beautifulsoup4     

Python dia handika ny marika HTML manaraka miaraka amin'ny Google Library:

Regex & Python: Adika amin'ny Gloutsoup sy Eleclal amin'ireo marika HTML ihany no misy ny teny fanalahidy sasany
 name="description" content="Your Text"/>
 class="text_obisnuit">Your Text

class="text_obisnuit2">Your Text

HTML novokarina tamin'ny fampiasana hilite.me

CODE: Copy ary ampandehano ny kaody eto ambany amin'ny programa mpandika teny rehetra(Ampiasaikopycripter.Aza adino ny hanova ny lalana eo amin'ny tsipika "Files_From_Folder".Ary aza adino ny hanova nyCode API.

Mitadiava eto ny lisitry ny fiteny izay azo adika:Lang..

Google dia hahita ny fitenin'ny rakitra. Ny hany tsy maintsy ataonao dia manova ny fiteny tianao hikasa:Toerana_language

from bs4 import BeautifulSoup
from bs4.formatter import HTMLFormatter
import requests
import json
import re

class UnsortedAttributes(HTMLFormatter):
    def attributes(self, tag):
        for k, v in tag.attrs.items():
            yield k, v

files_from_folder = r"c:\Users\Castel\Videos"

use_translate_folder = False

destination_language = 'nl'

extension_file = ".html"
pattern1 = r'

.*(( the | you | which | have | had | then | that | must | make | from | else | does | get | will | make | made | yours | can | your | doesn | their | could | from | at | of | my | an | by | with | are | his | him | she | he | it | may | seem | and | for | else | while | which | be | these | let | ask | has | as | won | keep | but | everything | without | thinking | about | just | to | doesn | if | each | try | I'm | them | one | more | much | on | all | even | over | seems ).*){3,}.*

'
pattern2 = r'

.*(( the | you | which | have | had | then | that | must | make | from | else | does | get | will | make | made | yours | can | your | doesn | their | could | from | at | of | my | an | by | with | are | his | him | she | he | it | may | seem | and | for | else | while | which | be | these | let | ask | has | as | won | keep | but | everything | without | thinking | about | just | to | doesn | if | each | try | I'm | them | one | more | much | on | all | even | over | seems ).*){3,}.*

'
pattern3 = r'Regex & Python: Adika amin'ny Gloutsoup sy Eleclal amin'ireo marika HTML ihany no misy ny teny fanalahidy sasany' pattern4 = r' patterns = [pattern1, pattern2, pattern3, pattern4] import os directory = os.fsencode(files_from_folder) def recursively_translate(node): for x in range(len(node.contents)): if isinstance(node.contents[x], str): if node.contents[x].strip() != '': try: newtext = requests.post('https://api-free.deepl.com/v2/translate', data={'auth_key':'YOUR-CODE:fx', 'text':node.contents[x], 'target_lang':destination_language }).content node.contents[x].replaceWith(json.loads(newtext)['translations'][0]['text']) except: pass elif node.contents[x] != None: recursively_translate(node.contents[x]) for file in os.listdir(directory): filename = os.fsdecode(file) print(filename) if filename == 'y_key_e479323ce281e459.html' or filename == 'TS_4fg4_tr78.html': continue if filename.endswith(extension_file): with open(os.path.join(files_from_folder, filename), encoding='utf-8') as html: page = html.read() updated = False for pattern in patterns: for x in re.finditer(pattern, page): updated = True new = x.group(0) soup = BeautifulSoup(new, 'html.parser') if pattern != pattern4: recursively_translate(soup) else: meta = soup.find('meta') newtext = requests.post('https://api-free.deepl.com/v2/translate', data={'auth_key':'YOUR-CODE:fx', 'text':meta['content'], 'target_lang':destination_language }).content meta['content'] = json.loads(newtext)['translations'][0]['text'] soup = soup.encode(formatter=UnsortedAttributes()).decode('utf-8') page = page.replace(new, soup) if updated: print(f'{filename} translated') new_filename = f'{filename.split(".")[0]}_{destination_language}.html' if use_translate_folder: try: with open(os.path.join(files_from_folder+r'\translated', new_filename), 'w', encoding='utf-8') as new_html: new_html.write(page) except: os.mkdir(files_from_folder+r'\translated') with open(os.path.join(files_from_folder+r'\translated', new_filename), 'w', encoding='utf-8') as new_html: new_html.write(page) else: with open(os.path.join(files_from_folder, new_filename), 'w', encoding='utf-8') as html: html.write(page)

That's all folks.

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

Ary koa, misyVersion 1 (miaraka amin'ny Googletrans)amin'ity code ity.

 


Latest articles accessed by readers:

  1. An Eye To See And A Mind To Understand
  2. Turn Towards Me With An Eye Full Of Your Own Gaze
  3. The Snapshot Of Magic In God's Universe
  4. Rhythm Of My Heart

Donate via Paypal

Alternate Text

RECURRENT DONATION

Donate monthly to support
the NeculaiFantanaru.com project

SINGLE DONATION

Donate the desired amount to support
the NeculaiFantanaru.com project

Donate by Bank Transfer

Account Ron: RO34INGB0000999900448439

Open account at ING Bank

Join The Neculai Fantanaru Community



* Note: If you want to read all my articles in real time, please check the romanian version !

decoration
About | Site Map | Partners | Feedback | Terms & Conditions | Privacy | RSS Feeds
© Neculai Fântânaru - All rights reserved