چند روش برای بلاک نشدن در وب اسکرپینگ

امیرحسین بیگدلو 4 ساعت قبل

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

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

1. تشخیص آدرس IP

2. بررسی درخواست ارسال HTTP شده

3. ریکپچا

4. بررسی های جاوااسکریپتی

در زمان ساخت یک ربات اسکرپر باید توجه ویژه ای به روی دور زدن این سیستم های ضد ربات داشته باشید. در اینجا چند نکته مفید برای web scraping برای شما آماده کرده ایم که به شما کمک میکند در لیست سیاه قرار نگرفته و مسدود نشوید.

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

# تغییر دوره ای آدرس ip

روش شماره یک سایت ها برای شناسایی ربات های وب، بررسی آدرس IP آنها و ردیابی نحوه رفتار آن است. اگر سرور متوجه یک الگو یا رفتار عجیب بشود میتواند آن آدرس IP را مسدود کند. با تغییر دادن منظم آدرس ip ربات میتوانید به سرور بفهمانید که درخواست ها از کاربران متفاوتی ارسال میشوند و رفتار عادی ترافیک آنلاین را تقلید کنید.

 

# استفاده از User agent واقعی

مقدار user agent یک نوع هدر http است که به وبسایت میفهماند شما از چه نوع مرورگری استفاده میکنید. برخی از وب‌سایت‌ها User-Agents را بررسی می‌کنند و درخواست‌های User Agents را که متعلق به یک مرورگر اصلی نیستند مسدود می‌کنند.

تنظیم یک هدر واقعی

برخی از برنامه نویسان زحمت تنظیم user agent را به خود نمیدهند، به همین خاطر به راحتی شناسایی میشوند. یادتان باشد که از user agent های معروف استفاده کنید. در این لینک چند user agent پرکاربرد آمده است که میتوانید یکی از آنها را انتخاب کنید. همجنین بهتر است بین چند user agent مختلف دائما چرخش داشته باشید.

ویدیو پیشنهادی: پروتکل http چیست؟

# هدرهای http را تنظیم کنید

مرورگرهای وب واقعی مجموعه کاملی از هدرها را خواهند داشت که هر یک از آنها را می توان توسط وب سایت های دقیق بررسی کرد تا اسکراپر وب شما را مسدود کند. برای اینکه اسکراپر شما یک مرورگر واقعی به نظر برسد، می توانید به https://httpbin.org/anything بروید و به سادگی هدرهایی را که در آنجا می بینید کپی کنید.

تنظیم کردن مواردی مانند Accept و Accept-Encoding و Accept-Language باعث میشوند که درخواست شما واقعی به نظر برسند. با تنظیم درست آدرس Ip و هدرهای http میتوانید 99% وبسایت ها را خزش کنید.

 

# درخواست ها را به شکل منظم ارسال نکنید

تشخیص وب اسکرپری که در هر ثانیه دقیقاً یک درخواست را در 24 ساعت شبانه روز ارسال می کند آسان است! هیچ شخص واقعی هرگز از وب سایتی به این شکل استفاده نمی کند. به علاوه، یک الگوی آشکار مانند این به راحتی قابل تشخیص است. از تأخیرهای تصادفی (مثلاً بین 2 تا 10 ثانیه) برای ساختن یک وب اسکراپر استفاده کنید که می تواند از مسدود شدن جلوگیری کند.

همجنین یادتان باشد که به وبسایت احترام بگذارید. اگر درخواست های زیادی ارسال کنید ممکن است سرور نتواند پاسخ همه درخواست ها را بدهد و خراب شود.

 

# از هدر Referrer استفاده کنید

هدر Referer یک هدر درخواست HTTP است که به سایت اجازه می دهد بداند از چه سایتی وارد می شوید. به طور کلی، ایده خوبی است که این را طوری تنظیم کنید که به نظر برسد از Google وارد شده اید. میتوانید این هدر را به شکل زیر تنظیم کنید:

“Referer”: “https://www.google.com/”

با تنظیم این هدر، می‌توانید درخواست خود را معتبرتر جلوه دهید.

 

# از مرورگرهای headless استفاده کنید

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

میتوانید با استفاده از Selenium یا Puppeteer درخواست های خود را در قالب یک مرورگر واقعی ارسال کنید. هرچند که تنظیم کردن این ابزارها کاری زمانبر است اما این روش بسیار کارساز است.

 

# مراقب تله Honeypot باشید

بسیاری از وبسایت ها لینک هایی داخل خود دارند که از دید کاربر مخفی است اما ربات ها میتوانند آنها را ببیند و وارد آنها شوند و بعد از وارد شدن به آن لینک مسدود میشوند. برای شناسایی این لینک ها باید مراقب لینک هایی که مقادیری مانند visibility: hidden یا display: none در اتریبیوت های خود دارند باشید.

Honeypot یکی از ساده‌ترین راه‌ها برای وب مسترها برای شناسایی خزنده‌ها است، بنابراین مطمئن شوید که این بررسی را در هر صفحه‌ای انجام می‌دهید. همچنین برخی وبمسترها ممکن است لینک را همرنگ تصویر زمینه کنند که در اینصورت باید مراقب مقادیری مانند color: #fff باشید.

مطالب مشابه



مونگارد