1. Trebuie să ai local o pagină de tip template "online.html" cu designul aferent viitorului mesaj newsletter pe care vrei să-l trimiţi
2. Extrage cel mai nou link din pagina locală index.html
3. Accesează acel link şi citeşte prin metoda "view source" pagina html, direct de pe pagina internet
4. Preia datele necesare din acea pagină html şi apoi le copiază în pagina locală "online.html". Apoi face backup într-un fişier "online_backup.html"
TITLU-ARTICOL din "online.html" va fi completat de conţinutul <title> din pagină web
LINK-CANONICAL din "online.html" va fi completat de conţinutul <canonical> din pagină web
COMENTARIU-BUTON din "online.html" va fi completat de conţinutul <canonical> din pagină web
COMENTARIU-LINK din "online.html" va fi completat de conţinutul <canonical> din pagină web
ARTICOL-BEBE din "online.html" va fi completat de conţinutul articolului din pagină web. Conţinutul se află între punctele de reper < ! -- ARTICOL START --> şi < ! -- ARTICOL FINAL -->
5. Trimite email la adresele email specificate
6. Face UNDO la fişierul "online.html" şi salvează.
Puteţi vizualiza întregul cod aici: https://pastebin.com/ANidubsK
import urllib.request import re from bs4 import BeautifulSoup import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart import shutil # Acceseaza index.html url = r"file:///e:/Principal/index.html" # Descarcă conținutul paginii response = urllib.request.urlopen(url) html_content = response.read() # Selectează link-ul conform pattern-ului specificat pattern = r'<h3 class="font-weight-normal" itemprop="name"><a href="([\s\S]*?)" class="color-black">' match = re.search(pattern, html_content.decode()) if match: link_url = match.group(1) print("Link-ul deschis este:", link_url) # Afișează link-ul deschis # Accesează link-ul response = urllib.request.urlopen(link_url) link_content = response.read() # Extrage cerințele soup = BeautifulSoup(link_content, 'html.parser') title = soup.title.string canonical = soup.find('link', {'rel': 'canonical'})['href'] # Extrage conținutul articolului article_pattern = r'<!-- ARTICOL START -->([\s\S]*?)<!-- ARTICOL FINAL -->' article_match = re.search(article_pattern, link_content.decode()) if article_match: article_content = article_match.group(1) # Facem backup la fișierul online.html shutil.copy2(r"c:\Folder8\online.html", r"c:\Folder8\online_backup.html") # Deschide fișierul HTML pentru modificare with open(r"c:\Folder8\online.html", "r", encoding='utf-8') as file: online_html = file.read() # Înlocuiește "TITLU-ARTICOL" cu titlul online_html = online_html.replace("TITLU-ARTICOL", title) # Înlocuiește "LINK-CANONICAL" cu canonical online_html = online_html.replace("LINK-CANONICAL", canonical) # Înlocuiește "COMENTARIU-BUTON" cu link-ul canonical online_html = online_html.replace("COMENTARIU-BUTON", canonical) # Înlocuiește "COMENTARIU-LINK" cu link-ul canonical online_html = online_html.replace("COMENTARIU-LINK", canonical) # Înlocuiește "ARTICOL-BEBE" cu article_content online_html = online_html.replace("ARTICOL-BEBE", article_content) print("Fișierul HTML a fost citit cu succes!") # Formatează tagurile specifice cu BOLD soup_online = BeautifulSoup(online_html, 'html.parser') for tag in soup_online.find_all(['p', 'span'], class_=['text_obisnuit', 'text_obisnuit2']): if tag.get('class') == ['text_obisnuit']: tag.wrap(soup_online.new_tag("span", style="font-weight: normal;")) else: tag.wrap(soup_online.new_tag("strong")) # Actualizează fișierul online.html cu conținutul formatat with open(r"c:\Folder8\online.html", "w", encoding='utf-8') as file: file.write(str(soup_online)) print("Fișierul HTML a fost modificat cu succes!") # Trimite email-ul (configurat pentru Cpanel ) sender_email = 'your@email.com' sender_password = 'PASWWORD' receiver_emails = ['exemple_1@yahoo.com', 'example_2@gmail.com'] message = MIMEMultipart() message['From'] = sender_email message['To'] = ', '.join(receiver_emails) message['Subject'] = 'Articol' message.attach(MIMEText(str(soup_online), 'html')) with smtplib.SMTP_SSL('mail.YOUR-DOMAIN.com', 465) as smtp_server: smtp_server.login(sender_email, sender_password) smtp_server.send_message(message) print("Email trimis cu succes!") # Restaurăm fișierul online.html din backup shutil.copy2(r"c:\Folder8\online_backup.html", r"c:\Folder8\online.html") print("Fișierul online.html a fost restaurat din backup!") else: print("Nu s-a găsit conținutul articolului conform cerinței.") else: print("Nu s-a găsit un link conform cerinței.")
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: HERE