البرمجة

تحويل ملفات HTML إلى قاعدة بيانات SQLite بلغة Python

عند محاولتك لتشغيل السكربت باستخدام الأمر python my_script.py، وجدت نفسك تواجه مشكلة في استخدام السكربت بسبب رسالة الخطأ التي تشير إلى عدم توفر بعض الوسائط اللازمة. يبدو أنك قمت بتعريف واستخدام واجهة سطر الأوامر (Command Line Interface) للبرنامج باستخدام argparse، ولكن هناك بعض الأمور التي يجب تصحيحها في تشغيل البرنامج.

أولاً، يبدو أنك قمت بتنسيق الكود بطريقة غير صحيحة، لذا سأقدم لك الكود بتنسيق صحيح:

python
#!/usr/bin/env python3 # Script to convert HTML files provided by The Online Plain Text English # Dictionary (http://www.mso.anu.edu.au/~ralph/OPTED/) into SQLite database import sys import sqlite3 from argparse import ArgumentParser, FileType from bs4 import BeautifulSoup def parse_args(): parser = ArgumentParser("Create database from HTML dictionary pages") parser.add_argument("files", metavar="file", nargs="+", type=FileType("rb")) parser.add_argument("--out", "-o", required=True) return parser.parse_args() def create_tables(conn): conn.execute("DROP TABLE IF EXISTS words") conn.execute("CREATE TABLE words (id integer primary key, word text, description text)") conn.commit() def words(handle): doc = BeautifulSoup(handle, "html.parser") for p in doc.find_all("p"): if len(p.contents) == 4: word = p.contents[0].string.lower() definition = p.contents[3].lstrip(") ").replace("\n", " ") yield word, definition def insert_words(conn, iter): conn.executemany("INSERT INTO words VALUES (NULL, ?, ?)", iter) def main(): args = parse_args() db = sqlite3.connect(args.out) create_tables(db) for handle in args.files: print("Processing \"{}\"".format(handle.name), file=sys.stderr) insert_words(db, words(handle)) db.commit() db.close() if __name__ == "__main__": main()

بعد تصحيح التنسيق، يمكنك تشغيل البرنامج بنجاح. يجب عليك تحديد ملفات الإدخال (file [file ...]) والملف الناتج (--out/-o) عند تشغيل البرنامج. على سبيل المثال:

bash
python my_script.py input_file1.html input_file2.html --out output_database.db

يرجى استبدال input_file1.html و input_file2.html بملفات HTML الفعلية التي تريد تحويلها إلى قاعدة بيانات SQLite، واستبدال output_database.db بالاسم الذي تريد لملف قاعدة البيانات الناتج.

المزيد من المعلومات

بالطبع، دعنا نستكشف بعض المعلومات الإضافية حول السكربت وكيفية تشغيله.

السكربت الذي قدمته يستخدم لغة البرمجة Python لتحويل ملفات HTML من مصدر معين، وتحديدًا موقع “The Online Plain Text English Dictionary”، إلى قاعدة بيانات SQLite. يمكن أن يكون ذلك مفيدًا لتخزين الكلمات وتعاريفها بشكل هيكلي وسهل الاستعراض.

النص الموجود في السكربت يستخدم مكتبة BeautifulSoup لتحليل وفحص ملفات HTML، وهي أداة قوية في Python للتعامل مع تحليل الصفحات HTML والبحث في هيكلها. بعد ذلك، يتم إدراج الكلمات وتعاريفها في قاعدة البيانات SQLite.

لتشغيل البرنامج بشكل صحيح، يجب عليك استخدام سطر الأوامر مع تحديد الملفات الواردة (file [file ...]) والملف الناتج (--out/-o). يجب أن يكون لديك Python مثبتًا على جهاز الكمبيوتر الخاص بك، ويمكنك تنفيذ الأمر من موجه الأوامر (Command Prompt) أو Terminal.

على سبيل المثال، يمكنك تنفيذ الأمر التالي:

bash
python my_script.py input_file1.html input_file2.html --out output_database.db

يتم استبدال input_file1.html و input_file2.html بملفات HTML الخاصة بك، و output_database.db بالاسم الذي تريد استخدامه لملف قاعدة البيانات الناتج.

زر الذهاب إلى الأعلى