UltKit

تبدیل HTML به JSON

جدول را از یک صفحهٔ وب ذخیره‌شده بیرون بکشید و آن را به‌صورت JSON تحویل بگیرید تا کدتان بتواند روی آن حلقه بزند. سلول‌های سرستون نام کلیدها را تعیین می‌کنند و هر ردیف جدول به یک آبجکت در یک آرایه تبدیل می‌شود.

مبدل داده

یا فایل‌های CSV, TSV, TXT … را اینجا رها کنید ·

حداکثر 95 MB برای هر فایل· تا 20 فایل· حذف پس از 30 دقیقه

خروجی

فایل‌ها روی سرورهای ما پردازش می‌شوند و پس از 30 دقیقه حذف می‌شوند.

نحوه استفاده از این ابزار

  1. 1

    صفحه یا جدول را ذخیره کنید

    در مرورگر کلیدهای Ctrl+S (در مک Cmd+S) را بزنید و فایل HTML را ذخیره کنید، یا کد جدول را از ابزارهای توسعه‌دهنده در یک فایل .html کپی کنید. تا 20 فایل بارگذاری کنید که هرکدام حداکثر 95 MB باشد.

  2. 2

    ساختار JSON را انتخاب کنید

    گزینهٔ آرایه‌ای از اشیاء از پیش انتخاب شده است. در تنظیمات پیشرفته مقدار ساختار JSON را برای فایل فشرده‌تر روی آرایه‌ای از آرایه‌ها بگذارید، یا قالب‌بندی خوانا را خاموش کنید تا خروجی در یک خط باشد.

  3. 3

    تبدیل کنید و از داده‌ها استفاده کنید

    روی تبدیل به JSON بزنید، فایل را دانلود کنید و آن را با JSON.parse در جاوااسکریپت، json.load در پایتون یا هر کلاینت API بخوانید.

صفحه را ذخیره کنید، فایل .html را بارگذاری کنید و هر ردیف جدول به شکل یک شیء JSON با کلیدهایی از سلول‌های سرستون برمی‌گردد.

چه زمانی باید جدول وب را به JSON تبدیل کرد

داده‌های مفید زیادی فقط به شکل جدول HTML وجود دارند: صفحهٔ نرخ ارز، جدول رده‌بندی لیگ، گزارشی که اینترانت نمایش می‌دهد اما اجازهٔ دانلودش را نمی‌دهد، یا صفحهٔ وضعیتی که همهٔ سرورها را فهرست می‌کند. مرورگر آن را خوب نشان می‌دهد، اما توسعه‌دهندهٔ فرانت‌اند که نمودار می‌سازد یا تستری که داده آزمایشی می‌خواهد، آرایه‌ای از اشیاء می‌خواهد.

پاسخ معمول یک اسکرپر است: صفحه را بگیرید، با Beautiful Soup یا Cheerio تجزیه کنید، ردیف‌ها را پیمایش کنید و سلول‌ها را نگاشت کنید. اگر صفحه هر روز تغییر می‌کند این کار ارزش دارد. اما برای جدولی که فقط یک بار لازم است، بارگذاری صفحهٔ ذخیره‌شده سریع‌تر است و چیزی برای نگهداری نمی‌ماند.

نمونهٔ تبدیل جدول HTML به JSON

جدول ورودی با سرستون‌های th به نام City و Founded و خروجی با آرایه‌ای از اشیاء
<table>
  <tr><th>City</th><th>Founded</th></tr>
  <tr><td>Porto</td><td>1123</td></tr>
  <tr><td>Graz</td><td>1128</td></tr>
</table>

[
  { "City": "Porto", "Founded": 1123 },
  { "City": "Graz", "Founded": 1128 }
]

آنچه در تبدیل حفظ و حذف می‌شود

  • حفظ می‌شود: متن سلول‌ها، ردیف سرستون به‌عنوان کلیدها و ترتیب ردیف‌ها
  • حذف می‌شود: CSS، سبک‌های درون‌خطی، کلاس‌ها و صفحهٔ اطراف جدول
  • حذف می‌شود: تصاویر و آیکون‌های داخل سلول‌ها، چون مقدار متنی ندارند
  • سلول‌های دارای پیوند متن قابل‌مشاهدهٔ خود را نگه می‌دارند، نه نشانی پشت آن را
  • فاصله‌های ابتدا و انتهای سلول‌ها با حذف فاصله‌های اضافی حذف می‌شوند
  • خروجی UTF-8 است که RFC 8259 برای JSON ردوبدل‌شده میان سامانه‌ها الزام می‌کند

محدودیت‌های تبدیل HTML به JSON

صفحات ذخیره‌شده پذیرفته می‌شوند
.html .htm
صفحه در هر دسته
20
برای هر فایل بارگذاری‌شده
95 MB
سپس فایل‌ها حذف می‌شوند
30 دقیقه

مقایسهٔ HTML و JSON

HTML

زبان نشانه‌گذاری ابرمتن (HTML)

HTML زبان نشانه‌گذاری وب است که Tim Berners-Lee در اوایل دهه 1990 آن را توصیف کرد و اکنون WHATWG به‌صورت استاندارد زنده نگهداری‌اش می‌کند. یک فایل HTML عنوان‌ها، پاراگراف‌ها، پیوندها، جدول‌ها، تصاویر و فرم‌ها را توصیف می‌کند و ظاهر معمولاً از CSS می‌آید. همه مرورگرها آن را نمایش می‌دهند و برای قالب‌های ایمیل و صفحات ذخیره‌شده وب هم به کار می‌رود. یک فایل HTML اغلب به تصاویر و شیوه‌نامه‌های خارجی وابسته است، پس اگر تنها جابه‌جا شود ممکن است خراب به نظر برسد.

فشرده‌سازی
–
شفافیت
–
انیمیشن
–
سال معرفی
1993 · Tim Berners-Lee; maintained by WHATWG
مبدل HTML

JSON

نشانه‌گذاری شیء جاوااسکریپت (JSON)

JSON یک فرمت متنی سبک برای داده‌های ساختاریافته است که Douglas Crockford در اوایل دهه 2000 آن را رایج کرد و با عنوان RFC 8259 و ECMA-404 استاندارد شد. اشیا، آرایه‌ها، رشته‌ها، اعداد، مقادیر بولی و null را با نحوی ساده و خوانا نمایش می‌دهد. این فرمت پیش‌فرض APIهای وب، فایل‌های پیکربندی و تبادل داده بین برنامه‌ها در تقریباً همه زبان‌های برنامه‌نویسی است. توضیحات، تاریخ یا طرحواره ندارد و فایل‌های بزرگ تودرتو بدون نمایشگر سخت خوانده می‌شوند.

فشرده‌سازی
–
شفافیت
–
انیمیشن
–
سال معرفی
2001 · Douglas Crockford
مبدل JSON

وقتی جدولی که برای خوانندگان انسانی در یک صفحهٔ گزارش، اینترانت یا سایت آمار عمومی منتشر شده باید به یک اسکریپت، کتابخانهٔ نمودار یا تست API داده برساند، HTML به JSON تبدیل می‌شود.

این دو فرمت از دو سنت متفاوت می‌آیند. HTML که اولین بار در 1991 توسط Tim Berners-Lee توصیف شد و اکنون WHATWG آن را به‌صورت استاندارد زنده نگهداری می‌کند، اسناد را برای نمایش نشانه‌گذاری می‌کند. JSON که Douglas Crockford آن را مشخص کرد و با RFC 8259 و ECMA-404 استاندارد شد، فقط داده نگه می‌دارد. رفتن از اولی به دومی بیشتر یعنی دور ریختن ظاهر، و برای همین نتیجه معمولاً بسیار کوچک‌تر از صفحهٔ ذخیره‌شده است. برای جدول‌هایی که به‌جای صفحهٔ وب به شکل فید XML آمده‌اند، XML به JSON همین کار را انجام می‌دهد.

پرسش‌های رایج تبدیل HTML به JSON

آیا مبدل کل صفحهٔ وب را می‌خواند یا فقط جدول‌ها را؟

فقط کد جدول: ردیف‌ها و سلول‌های داخل عنصرهای table، tr، th و td. منوهای ناوبری، پاراگراف‌ها و چیدمان کارتی ساخته‌شده با عنصرهای div داده‌های جدولی نیستند و به JSON تبدیل نمی‌شوند.

کلیدهای JSON از کدام ردیف گرفته می‌شوند؟

ردیف سرستون، که معمولاً سلول‌های th بالای جدول است. با روشن بودن ردیف اول سرستون است، متن آن به کلید مقادیر زیرش تبدیل می‌شود؛ پس ستونی با عنوان Population در هر شیء "Population": "…" می‌دهد.

سلول‌های دارای colspan و rowspan چگونه پردازش می‌شوند؟

سلول ادغام‌شده چند خانهٔ شبکه را می‌پوشاند اما یک مقدار دارد. این مقدار فقط در خانهٔ اول می‌آید؛ بنابراین پس از تبدیل ستون‌های ادغام‌شده را بررسی کنید و اگر جدولتان به سرستون‌های ادغام‌شده وابسته است، جاهای خالی را در کد پر کنید.

چرا اعداد در JSON من با ویرگول یا علامت پانویس نوشته شده‌اند؟

جدول‌های وب برای خوانندگان نوشته می‌شوند، پس ممکن است سلولی 1,204,000 یا 8.3[2] باشد. عدد ساده‌ای مثل 1123 به عدد JSON تبدیل می‌شود، اما آن سلول‌ها عدد معتبر نیستند و رشته می‌مانند؛ پیش از محاسبه، جداکننده‌ها و علامت‌های پانویس را در کد حذف کنید.

آیا استخراج جدول از یک وب‌سایت مجاز است؟

این به شرایط استفادهٔ سایت و نوع داده بستگی دارد، نه فرمت فایل. آمار عمومی و گزارش‌های خروجی خودتان معمولاً مشکلی ندارند؛ پیش از استفادهٔ دوبارهٔ محتوای دیگران شرایط آن را بررسی کنید.

آیا می‌توانم به‌جای JSON یک فایل صفحه‌گسترده بگیرم؟

بله. HTML به CSV همان جدول را به‌صورت ردیف‌های جداشده با کاما می‌نویسد که در Excel، Google Sheets یا Numbers باز می‌شود.