:::: MENU ::::

چه طور یک کد HTML را به متن تبدیل کنیم؟

کد html‌یکی از کارهای منظمی که باید انجام می‌دادم، خواندن متن‌های تارنمایی بود که امکان گرفتن متن را بسته بود. باید کد صفحه‌ی HTML را می‌گرفتم و تگ‌های آن را حذف می‌کردم. به علاوه باید حروف XML/HTML آن را به ASCII تبدیل می‌کردم. تصمیم گرفتم با دانش مبتدیانه‌ای که از پایتون دارم و کمی جست‌وجو و راهنمایی دوستان، این کار را با کدنویسی کوتاهی در پایتون انجام بدهم.

کد زیر  فایلی را می‌خواند (این‌جا input-file.html است ولی می‌توان اسم و پسوند آن را نیز تغییر داد)، سپس یونی‌کدهای آن را به کدهای اسکی تبدیل می‌کند، تگ‌های آن را حذف می‌کند و آخر سر در فایل جدیدی به نام output-file.txt ذخیره می‌کند.

ایراد بزرگ این کد آن است که چندین بار کل متن را وارسی می‌کند. این یعنی استفاده‌ی بیش از اندازه از منابع.

کد زیر بهینه شده‌ی کد بالاست که از کتاب‌خانه‌ی HTMLParser استفاده می‌کند. توضیح کامل درباره‌ی این کد و علت عدم استفاده از تابع‌های string.translate یا string.maketrans در منبع شماره‌ی ۴ آمده است.

منبع: ۱ و ۲ و ۳ و ۴ و ۵


پیام