Notice: file_put_contents(): Write of 1225 bytes failed with errno=28 No space left on device in /var/www/tgoop/post.php on line 50

Warning: file_put_contents(): Only 8192 of 9417 bytes written, possibly out of free disk space in /var/www/tgoop/post.php on line 50
DevTwitter | توییت برنامه نویسی@devtwitter P.8052
DEVTWITTER Telegram 8052
کتابخونه‌ی puppeteer برای نوشتن وب اسکرپر (scraper) در NodeJS :

معمولا برای نوشتن scraper از زبان پایتون استفاده میشه ولی اگه به هر دلیلی خواستین این کار رو با NodeJS انجام بدین میتونین از کتابخونه‌ی puppeteer استفاده کنین.

چرا ‌crul نکنیم؟
خب از اونجایی که اکثر سایت‌های مدرن از جاوااسکریپت برای رندن کرن اطلاعات استفاده میکنن و این کار سمت کلاینت انجام میشه وقتی درخواست crul میفرستیم و اطلاعات صفحه رو میگیرم، اطلاعات مورد نظرمون داخل صفحه رندر نشدن

برای این کار puppeteer هم مثل اکثر کتابخونه های دیگه یه مرورگر باز میکنه (نمایش دادن مرورگر یا نمایش ندادنش قابل تنظیم هست) و صبر میکنه سلکتوری که براش معرفی کردیم لود بشه بعد دیتای مورد نظر رو استخراج میکنه

تو این کد ما میریم قیمت (زودپز عظیما مدل H43 گنجایش 9 لیتر) رو در از سایت digikala در میاریم
نکات :
- توی این کد ادرس کالا و سلکتور استاتیک تعریف شده و اگه به هر دلیلی سایت هدف اپدیت بده ممکنه اینها دیگه معتبر نباشن.
- برای جلوگیری از شناسایی به عنوان بات، می‌توانید یک User-Agent جعلی به مرورگر اضافه کنید.
- کتابخونه‌ی puppeteer در حالت پیش فرض به صورت headless اجرا میشود و شما اتفاقات رو نمیبینید اینطوری رندر گرافیکی نداره و رم و گرافیک کمتری استفاده میکنه از طرفی معمولا این کدها روی سرور اجرا میشه و خب اونجا اصلا کاربردی نداره.
- برای سایت‌هایی که بات دیتکشن دارن میشه از کتابخونه‌های دیگه ای اضافه کرد مثل 2Captcha ،anticaptcha
- اگه تعداد رسکوست هاتون زیاد باشه ممکن هست سایت هدف ip شما رو برای مدتی مسدود کنه
- این کد صرفا یک مثال برای اشنایی هست و با خوندن داکیومنت میتونید اطلاعات بیشتر و بهتری بدست بیارین
- اسکرپ کردن دیتاهای که برای دسترسی عموم ازاد هست در صورتی که برای سایت هدف مشکلی به وجود نیاره عمل غیرقانونی نیست.

@DevTwitter | <Mohsen Zare/>



tgoop.com/devtwitter/8052
Create:
Last Update:

کتابخونه‌ی puppeteer برای نوشتن وب اسکرپر (scraper) در NodeJS :

معمولا برای نوشتن scraper از زبان پایتون استفاده میشه ولی اگه به هر دلیلی خواستین این کار رو با NodeJS انجام بدین میتونین از کتابخونه‌ی puppeteer استفاده کنین.

چرا ‌crul نکنیم؟
خب از اونجایی که اکثر سایت‌های مدرن از جاوااسکریپت برای رندن کرن اطلاعات استفاده میکنن و این کار سمت کلاینت انجام میشه وقتی درخواست crul میفرستیم و اطلاعات صفحه رو میگیرم، اطلاعات مورد نظرمون داخل صفحه رندر نشدن

برای این کار puppeteer هم مثل اکثر کتابخونه های دیگه یه مرورگر باز میکنه (نمایش دادن مرورگر یا نمایش ندادنش قابل تنظیم هست) و صبر میکنه سلکتوری که براش معرفی کردیم لود بشه بعد دیتای مورد نظر رو استخراج میکنه

تو این کد ما میریم قیمت (زودپز عظیما مدل H43 گنجایش 9 لیتر) رو در از سایت digikala در میاریم
نکات :
- توی این کد ادرس کالا و سلکتور استاتیک تعریف شده و اگه به هر دلیلی سایت هدف اپدیت بده ممکنه اینها دیگه معتبر نباشن.
- برای جلوگیری از شناسایی به عنوان بات، می‌توانید یک User-Agent جعلی به مرورگر اضافه کنید.
- کتابخونه‌ی puppeteer در حالت پیش فرض به صورت headless اجرا میشود و شما اتفاقات رو نمیبینید اینطوری رندر گرافیکی نداره و رم و گرافیک کمتری استفاده میکنه از طرفی معمولا این کدها روی سرور اجرا میشه و خب اونجا اصلا کاربردی نداره.
- برای سایت‌هایی که بات دیتکشن دارن میشه از کتابخونه‌های دیگه ای اضافه کرد مثل 2Captcha ،anticaptcha
- اگه تعداد رسکوست هاتون زیاد باشه ممکن هست سایت هدف ip شما رو برای مدتی مسدود کنه
- این کد صرفا یک مثال برای اشنایی هست و با خوندن داکیومنت میتونید اطلاعات بیشتر و بهتری بدست بیارین
- اسکرپ کردن دیتاهای که برای دسترسی عموم ازاد هست در صورتی که برای سایت هدف مشکلی به وجود نیاره عمل غیرقانونی نیست.

@DevTwitter | <Mohsen Zare/>

BY DevTwitter | توییت برنامه نویسی


Share with your friend now:
tgoop.com/devtwitter/8052

View MORE
Open in Telegram


Telegram News

Date: |

Telegram offers a powerful toolset that allows businesses to create and manage channels, groups, and bots to broadcast messages, engage in conversations, and offer reliable customer support via bots. A new window will come up. Enter your channel name and bio. (See the character limits above.) Click “Create.” Telegram is a leading cloud-based instant messages platform. It became popular in recent years for its privacy, speed, voice and video quality, and other unmatched features over its main competitor Whatsapp. Telegram iOS app: In the “Chats” tab, click the new message icon in the right upper corner. Select “New Channel.” Administrators
from us


Telegram DevTwitter | توییت برنامه نویسی
FROM American