نحوه خراش دادن یک وب سایت با استفاده از node. js و عروسکی

  • 2021-04-13

How To Scrape a Website Using Node.js and Puppeteer

Scraping فرایند خودکار سازی جمع آوری داده ها از وب است. این فرایند به طور معمول "خزنده" را مستقر می کند که به طور خودکار وب را گشت و گذار می کند و داده ها را از صفحات انتخاب شده خراش می دهد. دلایل زیادی وجود دارد که ممکن است بخواهید داده ها را خراش دهید. در درجه اول ، با از بین بردن فرآیند جمع آوری داده های دستی ، جمع آوری داده ها را بسیار سریعتر می کند. هنگام جمع آوری داده ها یا مورد نیاز ، خراش نیز راه حلی است اما وب سایت API را ارائه نمی دهد.

در این آموزش ، شما یک برنامه Scraping Web را با استفاده از Node. js و Puppeteer ایجاد خواهید کرد. برنامه شما با پیشرفت در پیچیدگی رشد می کند. ابتدا برنامه خود را برای باز کردن Chromium و بارگذاری یک وب سایت ویژه که به عنوان ماسهبازی وب سایت طراحی شده است ، کد می کنید: books. toscrape. com. در دو مرحله بعدی ، شما تمام کتاب ها را در یک صفحه واحد از کتاب ها و سپس تمام کتاب ها در چندین صفحه قرار می دهید. در مراحل باقیمانده ، خراش خود را بر اساس دسته کتاب فیلتر می کنید و سپس داده های خود را به عنوان یک فایل JSON ذخیره می کنید.

هشدار: اخلاق و قانونی بودن خراش وب بسیار پیچیده و دائما در حال تحول است. آنها همچنین بر اساس مکان شما ، مکان داده ها و وب سایت مورد نظر متفاوت هستند. این آموزش یک وب سایت ویژه ، books. toscrape. com را ضبط می کند ، که به طور خاص برای آزمایش برنامه های اسکرابر طراحی شده است. خراش دادن هر دامنه دیگر در خارج از محدوده این آموزش قرار دارد.

پیش نیازها

  • node. js نصب شده در دستگاه توسعه شما. این آموزش بر روی Node. js نسخه 12. 18. 3 و نسخه NPM 6. 14. 6 مورد آزمایش قرار گرفت. می توانید این راهنما را برای نصب Node. js در MacOS یا Ubuntu 18. 04 دنبال کنید ، یا می توانید این راهنما را برای نصب Node. js در Ubuntu 18. 04 با استفاده از PPA دنبال کنید.

مرحله 1 - تنظیم اسکریپت وب

با نصب Node. js ، می توانید تنظیمات وب خود را شروع کنید. ابتدا یک دایرکتوری ریشه پروژه ایجاد می کنید و سپس وابستگی های مورد نیاز را نصب می کنید. این آموزش فقط به یک وابستگی نیاز دارد ، و شما آن را با استفاده از Node. JS Package Manager NPM نصب خواهید کرد. NPM با node. js از قبل نصب شده است ، بنابراین نیازی به نصب آن نیست.

یک پوشه برای این پروژه ایجاد کنید و سپس به داخل حرکت کنید:

شما تمام دستورات بعدی را از این فهرست اجرا خواهید کرد.

ما باید یک بسته را با استفاده از NPM یا مدیر بسته Node نصب کنیم. برای اولین بار NPM را به منظور ایجاد یک پرونده بسته بندی. json ، که وابستگی ها و ابرداده های پروژه شما را مدیریت می کند ، اولیه کنید.

NPM را برای پروژه خود اولیه کنید:

NPM دنباله ای از اعلان ها را ارائه می دهد. می توانید Enter را به هر سریع فشار دهید ، یا می توانید توضیحات شخصی را اضافه کنید. اطمینان حاصل کنید که Enter را فشار داده و مقادیر پیش فرض را در صورت درخواست برای ورود به نقطه ورود: و دستور آزمون:. از طرف دیگر ، می توانید پرچم Y را به NP M-NPM INI T-Y -منتقل کنید و تمام مقادیر پیش فرض را برای شما ارسال می کند.

خروجی شما چیزی شبیه به این خواهد بود:

بله را تایپ کرده و Enter را فشار دهید. NPM این خروجی را به عنوان پرونده Package. json شما ذخیره می کند.

اکنون برای نصب Puppeteer از NPM استفاده کنید:

این دستور هم Puppeteer و هم نسخه ای از Chromium را نصب می کند که تیم Puppeteer می داند با API خود کار خواهد کرد.

در دستگاه های لینوکس ، Puppeteer ممکن است به برخی از وابستگی های اضافی نیاز داشته باشد.

با NPM ، Puppeteer و هرگونه وابستگی اضافی نصب شده ، پرونده Package. json شما قبل از شروع برنامه نویسی به آخرین پیکربندی نیاز دارد. در این آموزش ، برنامه خود را از خط فرمان با NPM Run Start راه اندازی می کنید. شما باید اطلاعاتی در مورد این اسکریپت Start را به pack. json اضافه کنید. به طور خاص ، شما باید یک خط را در زیر دستورالعمل اسکریپت در مورد دستور شروع خود اضافه کنید.

پرونده را در ویرایشگر متن مورد نظر خود باز کنید:

SCRIPTS: بخش را پیدا کنید و تنظیمات زیر را اضافه کنید. به یاد داشته باشید که یک کاما را در انتهای خط اسکریپت تست قرار دهید ، یا پرونده شما به درستی تجزیه نمی شود.

همچنین متوجه خواهید شد که اکنون Puppeteer در نزدیکی انتهای پرونده تحت وابستگی قرار می گیرد. پرونده Package. json شما نیازی به تجدید نظر دیگر نخواهد داشت. تغییرات خود را ذخیره کرده و ویرایشگر خود را ببندید.

شما اکنون آماده هستید تا کدگذاری اسکرابر خود را شروع کنید. در مرحله بعدی ، شما یک نمونه مرورگر را تنظیم کرده و عملکرد اصلی اسکرابر خود را آزمایش می کنید.

مرحله 2 - تنظیم نمونه مرورگر

هنگامی که یک مرورگر سنتی را باز می کنید ، می توانید کارهایی مانند دکمه های کلیک انجام دهید ، با ماوس خود حرکت کنید ، تایپ کنید ، ابزارهای DEV و موارد دیگر را باز کنید. یک مرورگر بدون سر مانند Chromium به شما امکان می دهد همین کارهای مشابه را انجام دهید ، اما از نظر برنامه ای و بدون رابط کاربری. در این مرحله ، نمونه مرورگر Scraper خود را تنظیم خواهید کرد. هنگامی که برنامه خود را راه اندازی می کنید ، به طور خودکار Chromium را باز می کند و به books. toscrape. com حرکت می کند. این اقدامات اولیه اساس برنامه شما را تشکیل می دهد.

Scraper وب شما به چهار پرونده . js نیاز دارد: مرورگر. JS ، فهرست ، JS ، PageController. js و PagesCraper. js. در این مرحله ، شما هر چهار پرونده را ایجاد می کنید و سپس با رشد برنامه خود در پیچیدگی ، آنها را به طور مداوم به روز می کنید. با مرورگر شروع کنید. این پرونده حاوی اسکریپت است که مرورگر شما را شروع می کند.

از فهرست اصلی پروژه خود، browser. js را در یک ویرایشگر متن ایجاد و باز کنید:

ابتدا به Puppeteer نیاز دارید و سپس یک تابع async به نام startBrowser() ایجاد می کنید. این تابع مرورگر را راه اندازی می کند و نمونه ای از آن را برمی گرداند. کد زیر را اضافه کنید:

شما از await استفاده می‌کنید تا مطمئن شوید که Promise حل می‌شود، این نمونه را در اطراف یک بلوک کد try-catch پیچیده و سپس نمونه‌ای از مرورگر را برمی‌گردانید.

توجه داشته باشید که متد . launch() یک پارامتر JSON با چندین مقدار می گیرد:

  • headless - false به این معنی است که مرورگر با یک رابط اجرا می شود تا بتوانید اجرای اسکریپت خود را تماشا کنید، در حالی که true به این معنی است که مرورگر در حالت بدون سر اجرا می شود. با این حال، خوب توجه داشته باشید که اگر می‌خواهید اسکراپر خود را در فضای ابری مستقر کنید، headless را روی true تنظیم کنید. اکثر ماشین‌های مجازی هدلس هستند و دارای رابط کاربری نیستند و از این رو فقط می‌توانند مرورگر را در حالت هدلس اجرا کنند. Puppeteer همچنین دارای حالت headful است، اما باید صرفاً برای اهداف آزمایشی استفاده شود.
  • ignoreHTTPSErrors - true به شما امکان می دهد از وب سایت هایی بازدید کنید که از طریق پروتکل HTTPS ایمن میزبانی نمی شوند و هر گونه خطای مربوط به HTTPS را نادیده بگیرید.

ذخیره کنید و فایل را ببندید.

حالا دومین فایل . js خود را بسازید، index. js:

در اینجا به browser. js و pageController. js نیاز دارید. سپس تابع startBrowser() را فراخوانی می کنید و نمونه مرورگر ایجاد شده را به کنترل کننده صفحه ما ارسال می کنید، که اقدامات آن را هدایت می کند. کد زیر را اضافه کنید:

ذخیره کنید و فایل را ببندید.

سومین فایل . js خود را ایجاد کنید، pageController. js:

pageController. js فرآیند خراش دادن شما را کنترل می کند. از نمونه مرورگر برای کنترل فایل pageScraper. js استفاده می کند، جایی که تمام اسکریپت های اسکریپ اجرا می شوند. در نهایت، از آن برای تعیین دسته بندی کتابی که می خواهید خراش دهید استفاده خواهید کرد. با این حال، در حال حاضر، فقط می‌خواهید مطمئن شوید که می‌توانید Chromium را باز کنید و به یک صفحه وب بروید:

این کد تابعی را صادر می کند که نمونه مرورگر را می گیرد و آن را به تابعی به نام ()scrapeAll ارسال می کند. این تابع، به نوبه خود، این نمونه را به ()pageScraper. scraper به عنوان آرگومان ارسال می کند که از آن برای خراش دادن صفحات استفاده می کند.

ذخیره کنید و فایل را ببندید.

در نهایت، آخرین فایل . js خود را ایجاد کنید، pageScraper. js:

در اینجا یک شی به معنای واقعی کلمه با ویژگی url و متد scraper() ایجاد خواهید کرد. url URL وب صفحه وب است که می خواهید خراش دهید، در حالی که متد scraper() حاوی کدی است که خراش واقعی شما را انجام می دهد، اگرچه در این مرحله صرفاً به یک URL هدایت می شود. کد زیر را اضافه کنید:

Puppeteer یک روش NewPage () دارد که نمونه صفحه جدیدی را در مرورگر ایجاد می کند و این نمونه های صفحه می توانند کارهای کاملاً زیادی انجام دهند. در روش Scraper () ما یک نمونه صفحه ایجاد کرده و سپس از روش Page. goto () برای حرکت به صفحه اصلی books. toscrape. com استفاده کرده اید.

ذخیره کنید و فایل را ببندید.

ساختار پرونده برنامه شما اکنون کامل است. سطح اول درخت دایرکتوری پروژه شما به این شکل خواهد بود:

اکنون دستور npm run را شروع کنید و برنامه scraper خود را اجرا کنید:

به طور خودکار یک مرورگر کروم را باز می کند ، یک صفحه جدید در مرورگر باز می کند و به books. toscrape. com حرکت می کند.

در این مرحله ، شما یک برنامه Puppeteer ایجاد کردید که Chromium را باز کرد و صفحه اصلی را برای یک کتابفروشی آنلاین ساختگی - Books. Toscrape. com بارگذاری کرد. در مرحله بعدی ، داده ها را برای هر کتاب در آن صفحه اصلی می ریزید.

مرحله 3 - داده های خراش از یک صفحه

قبل از افزودن قابلیت های بیشتر به برنامه Scraper ، مرورگر وب مورد نظر خود را باز کرده و به صورت دستی به کتاب ها بروید تا صفحه اصلی را بکشید. سایت را مرور کنید و از نحوه ساخت داده ها حس کنید.

Books to scrape websites image

در سمت چپ و کتابهایی که در سمت راست نمایش داده می شود ، یک بخش دسته بندی پیدا خواهید کرد. هنگامی که بر روی یک کتاب کلیک می کنید ، مرورگر به URL جدید منتقل می شود که اطلاعات مربوط به آن کتاب خاص را نشان می دهد.

در این مرحله ، شما این رفتار را تکرار خواهید کرد ، اما با کد ؛شما می توانید تجارت در وب سایت و مصرف داده های آن را به صورت خودکار انجام دهید.

ابتدا ، اگر کد منبع را برای صفحه اصلی با استفاده از ابزارهای DEV در مرورگر خود بازرسی کنید ، متوجه خواهید شد که صفحه داده های هر کتاب را تحت یک برچسب بخش لیست می کند. در داخل برچسب بخش ، هر کتاب در زیر یک لیست (li) قرار دارد ، و در اینجا است که پیوند صفحه اختصاصی کتاب ، قیمت و در دسترس بودن موجود را پیدا می کنید.

books.toscrape source code viewed in dev tools

شما می توانید این URL های کتاب را ضبط کنید ، برای کتاب هایی که در آن موجود هستند ، فیلتر می کنید ، به هر صفحه کتاب اختصاص می دهید و داده های آن کتاب را ضبط می کنید.

پرونده pagescraper. js خود را دوباره باز کنید:

محتوای برجسته زیر را اضافه کنید. شما یک بلوک منتظر دیگر را در صفحه Await Page. goto (this. url) لانه خواهید کرد.:

در این بلوک کد ، شما به روش page. waitforselector () خوانده اید. این منتظر بود تا DIV که شامل تمام اطلاعات مربوط به کتاب است در DOM ارائه شود ، و سپس شما را به عنوان صفحه $ heal () نامیدید. این روش عنصر URL را با بخش انتخاب Ol Li (مطمئن باشید که همیشه فقط یک رشته یا یک شماره را از صفحه باز می گردانید. $ heal () و صفحه. $ $ heal () روش ها).

هر کتابی دو مقام دارد. یک کتاب یا موجود است یا موجود نیست. شما فقط می‌خواهید کتاب‌هایی را که در انبار هستند خراش دهید. از آنجایی که page.$$eval() آرایه ای از تمام عناصر منطبق را برمی گرداند، شما این آرایه را فیلتر کرده اید تا مطمئن شوید که فقط با کتاب های موجود کار می کنید. شما این کار را با جستجو و ارزیابی کلاس . instock. availability انجام دادید. سپس ویژگی href پیوندهای کتاب را ترسیم کرده و آن را از روش برگردانید.

ذخیره کنید و فایل را ببندید.

برنامه خود را دوباره اجرا کنید:

مرورگر باز می‌شود، به صفحه وب می‌رود و پس از اتمام کار بسته می‌شود. اکنون کنسول خود را بررسی کنید. شامل تمام URL های خراشیده شده است:

این یک شروع عالی است، اما شما می خواهید تمام داده های مربوطه را برای یک کتاب خاص و نه تنها URL آن را پاک کنید. اکنون از این نشانی‌های اینترنتی برای باز کردن هر صفحه استفاده می‌کنید و عنوان، نویسنده، قیمت، در دسترس بودن، UPC، توضیحات و URL تصویر کتاب را می‌نویسید.

کد زیر را اضافه کنید، که از طریق هر پیوند خراشیده شده حلقه می زند، یک نمونه صفحه جدید باز می کند و سپس داده های مربوطه را بازیابی می کند:

شما آرایه ای از همه URL ها دارید. می‌خواهید از طریق این آرایه حلقه بزنید، URL را در یک صفحه جدید باز کنید، داده‌ها را در آن صفحه بکشید، آن صفحه را ببندید، و صفحه جدیدی را برای URL بعدی در آرایه باز کنید. توجه داشته باشید که این کد را در یک Promise قرار داده اید. این به این دلیل است که شما می خواهید بتوانید منتظر بمانید تا هر عملی در حلقه شما کامل شود. بنابراین، هر Promise یک URL جدید باز می‌کند و تا زمانی که برنامه تمام داده‌های URL را حذف نکند و سپس آن نمونه صفحه بسته نشود، حل نمی‌شود.

هشدار: به خوبی توجه داشته باشید که با استفاده از حلقه for-in منتظر Promise بودید. هر حلقه دیگری کافی خواهد بود، اما از تکرار روی آرایه های URL خود با استفاده از روش تکرار آرایه مانند forEach یا هر روش دیگری که از تابع callback استفاده می کند خودداری کنید. این به این دلیل است که تابع callback باید ابتدا از صف برگشت تماس و حلقه رویداد عبور کند، بنابراین، چندین نمونه صفحه به طور همزمان باز می شوند. این فشار بسیار بیشتری بر حافظه شما وارد می کند.

به تابع pagePromise خود نگاه دقیق تری بیندازید. اسکراپر شما ابتدا یک صفحه جدید برای هر URL ایجاد کرد و سپس از تابع page.$eval() برای هدف قرار دادن انتخابگرها برای جزئیات مرتبطی که می‌خواهید در صفحه جدید خراش دهید استفاده کردید. برخی از متون حاوی فضاهای خالی، برگه‌ها، خطوط جدید و سایر نویسه‌های غیرالفبایی هستند که با استفاده از یک عبارت منظم آن‌ها را حذف کرده‌اید. سپس مقدار هر قطعه داده ای که در این صفحه خراشیده می شود را به یک Object اضافه می کنید و آن شی را حل می کنید.

ذخیره کنید و فایل را ببندید.

دوباره اسکریپت را اجرا کنید:

مرورگر صفحه اصلی را باز می کند و سپس هر صفحه کتاب را باز می کند و داده های خراشیده شده را از هر یک از این صفحات ثبت می کند. این خروجی به کنسول شما چاپ می شود:

در این مرحله ، شما داده های مربوطه را برای هر کتاب در صفحه اصلی books. toscrape. com خراب کرده اید ، اما می توانید عملکرد بسیار بیشتری را اضافه کنید. به عنوان مثال ، هر صفحه از کتاب ها صفحه بندی شده است. چگونه از این صفحات دیگر کتاب می گیرید؟همچنین ، در سمت چپ وب سایت ، دسته های کتاب را پیدا کردید. چه می شود اگر همه کتاب ها را نمی خواهید ، اما فقط از یک ژانر خاص می خواهید؟اکنون این ویژگی ها را اضافه خواهید کرد.

مرحله 4 - خراش داده ها از چندین صفحه

صفحات موجود در books. toscrape. com که در آن صفحه قرار دارند ، یک دکمه بعدی در زیر محتوای آنها دارند ، در حالی که صفحاتی که صفحه بندی نشده اند.

شما از حضور این دکمه برای تعیین اینکه صفحه صفحه بندی شده است یا خیر ، استفاده خواهید کرد. از آنجا که داده های موجود در هر صفحه از یک ساختار یکسان است و دارای همان نشانه گذاری است ، شما برای هر صفحه ممکن نمی نویسید. در عوض ، شما از تمرین بازگشت استفاده خواهید کرد.

ابتدا باید ساختار کد خود را کمی تغییر دهید تا به صورت بازگشتی در چندین صفحه حرکت کند.

شما یک تابع جدید به نام ScrapeCurrentPage () را به روش Scraper () خود اضافه خواهید کرد. این تابع شامل تمام کدی است که داده ها را از یک صفحه خاص ضبط می کند و در صورت وجود روی دکمه بعدی کلیک می کند. کد برجسته زیر را اضافه کنید:

در ابتدا متغیر NextButtonexist را روی FALSE تنظیم کرده اید ، و سپس بررسی کنید که آیا دکمه وجود دارد یا خیر. اگر دکمه بعدی وجود داشته باشد ، شما NextButtonexists را درست تنظیم کرده و روی دکمه بعدی کلیک کنید و سپس با این عملکرد به صورت بازگشتی تماس بگیرید.

اگر NextButtonexists نادرست باشد ، طبق معمول آرایه ScripedData را برمی گرداند.

ذخیره کنید و فایل را ببندید.

دوباره اسکریپت خود را اجرا کنید:

این ممکن است مدتی طول بکشد. برنامه شما ، از این گذشته ، اکنون داده ها را از بیش از 800 کتاب ضبط می کند. احساس راحتی کنید که مرورگر را ببندید یا CTRL + C را فشار دهید تا روند کار را لغو کنید.

شما اکنون قابلیت های اسکرابر خود را به حداکثر رسانده اید ، اما مشکل جدیدی در این روند ایجاد کرده اید. اکنون مسئله داده های خیلی کمی نیست بلکه داده های زیادی است. در مرحله بعدی ، شما برنامه خود را به خوبی تنظیم می کنید تا خراش خود را بر اساس دسته کتاب فیلتر کنید.

مرحله 5 - داده های ضبط براساس دسته بندی

برای خراش داده ها بر اساس طبقه بندی ، شما باید پرونده PagesCraper. js و پرونده PageController. js خود را تغییر دهید.

PageController. js را در یک ویرایشگر متن باز کنید:

با اسکرابر تماس بگیرید تا فقط کتاب های مسافرتی را خراب کند. کد زیر را اضافه کنید:

اکنون شما دو پارامتر را به روش pagescraper. scraper () خود منتقل می کنید ، که پارامتر دوم دسته کتابهایی است که می خواهید آنرا بکشید ، که در این مثال سفر است. اما پرونده pagescraper. js شما هنوز این پارامتر را تشخیص نمی دهد. شما باید این پرونده را نیز تنظیم کنید.

ذخیره کنید و فایل را ببندید.

کد زیر را اضافه کنید ، که پارامتر دسته شما را اضافه می کند ، به صفحه دسته بندی حرکت می کنید و سپس از طریق نتایج صفحه بندی شروع به کار می کنید:

این بلوک کد از مقوله ای که در آن عبور کرده اید استفاده می کند تا URL را که در آن کتاب های آن دسته از آنها قرار دارد ، بدست آورید.

صفحه. $ $ eval () می تواند با انتقال آرگومان به عنوان یک پارامتر سوم به روش $ $ eval () ، آرگومان ها را در نظر بگیرد و آن را به عنوان سومین پارامتر در پاسخ به پاسخ به این ترتیب تعریف کند:

این همان کاری بود که شما در کد خود انجام دادید. شما دسته کتابهایی را که می خواستید خراشیده اید ، از طریق همه دسته ها نقشه برداری کردید تا بررسی کنید که کدام یک مطابقت دارد ، و سپس URL این گروه را برگردانید.

سپس این URL برای حرکت به صفحه ای که دسته کتابهایی را که می خواهید با استفاده از روش صفحه استفاده کنید ، نشان می دهد.

ذخیره کنید و فایل را ببندید.

درخواست خود را دوباره اجرا کنید. متوجه خواهید شد که آن را به دسته سفر می رساند ، به صورت بازگشتی کتاب ها را در آن صفحه به صفحه باز می کند و نتایج را ثبت می کند:

در این مرحله ، شما داده ها را در چندین صفحه خراشیده و سپس داده ها را در چندین صفحه از یک دسته خاص قرار داده اید. در مرحله آخر ، شما اسکریپت خود را تغییر می دهید تا داده ها را در چندین دسته قرار دهید و سپس این داده های خراشیده شده را در یک فایل JSON رشته ای ذخیره کنید.

مرحله 6 - ضبط داده ها از چندین دسته و ذخیره داده ها به عنوان JSON

در این مرحله آخر ، داده های اسکریپت اسکریپت خود را از همان دسته از دسته های مورد نظر خود خارج می کنید و سپس نحوه خروجی خود را تغییر می دهید. به جای ورود به نتایج ، آنها را در یک پرونده ساختاری به نام data. json ذخیره خواهید کرد.

می توانید به سرعت دسته های بیشتری را برای خراشیدن اضافه کنید. انجام این کار فقط به یک خط اضافی در هر ژانر نیاز دارد.

کد خود را تنظیم کنید تا دسته های اضافی را در بر بگیرد. مثال زیر باعث می شود تا تاریخچه و رمز و راز به دسته سفر موجود ما اضافه شود:

ذخیره کنید و فایل را ببندید.

اسکریپت را دوباره اجرا کنید و داده های خراش آن را برای هر سه دسته تماشا کنید:

با استفاده از Scraper کاملاً کاربردی ، مرحله نهایی شما شامل ذخیره داده های شما در قالب مفیدتر است. اکنون شما آن را در یک فایل JSON با استفاده از ماژول FS در node. js. ذخیره می کنید.

اول ، مجدداً pagecontroller. js:

کد برجسته زیر را اضافه کنید:

اول ، شما به Node ، ماژول FS JS در PageController. js نیاز دارید. این تضمین می کند که می توانید داده های خود را به عنوان یک فایل JSON ذخیره کنید. سپس شما در حال اضافه کردن کد به گونه ای است که با پایان یافتن خراش و مرورگر ، برنامه یک فایل جدید به نام data. json ایجاد می کند. توجه داشته باشید که محتوای Data. json json است. بنابراین ، هنگام خواندن محتوای Data. json ، همیشه قبل از استفاده مجدد از داده ها ، آن را به عنوان JSON تجزیه کنید.

ذخیره کنید و فایل را ببندید.

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

نتیجه

در این آموزش ، شما یک خزنده وب ایجاد کرده اید که داده ها را در چندین صفحه به صورت بازگشتی خراب کرده و سپس آن را در یک فایل JSON ذخیره کرده اید. به طور خلاصه ، شما یک روش جدید برای خودکارسازی جمع آوری داده ها از وب سایت ها آموخته اید.

Puppeteer دارای ویژگی های بسیار زیادی است که در محدوده این آموزش نبوده است. برای کسب اطلاعات بیشتر ، استفاده از Puppeteer را برای کنترل آسان بر روی Chrome بدون سر بررسی کنید. همچنین می توانید از مستندات رسمی Puppeteer بازدید کنید.

اگر از این آموزش و جامعه وسیع ما لذت بردید ، در نظر بگیرید که محصولات دیجیتالی ما را بررسی کنید که می تواند به شما در دستیابی به اهداف توسعه نیز کمک کند.

  • نویسنده : پورالهويردي فاطمه
  • منبع : psicologocopacabana.site
  • بدون دیدگاه

ثبت دیدگاه

مجموع دیدگاهها : 0در انتظار بررسی : 0انتشار یافته : ۰
قوانین ارسال دیدگاه
  • دیدگاه های ارسال شده توسط شما، پس از تایید توسط تیم مدیریت در وب منتشر خواهد شد.
  • پیام هایی که حاوی تهمت یا افترا باشد منتشر نخواهد شد.
  • پیام هایی که به غیر از زبان فارسی یا غیر مرتبط باشد منتشر نخواهد شد.