بازگشت به وبلاگ

راهنمایی درباره Robots.txt و پروکسی: چگونه به طور قانونی رقبای خود را پارس کنیم و از مسدود شدن سایت جلوگیری کنیم

راهنمای کامل برای پارسینگ اخلاقی از طریق پروکسی: چگونه از robots.txt پیروی کنیم، از مسدود شدن جلوگیری کنیم و داده‌های رقبای خود را بدون خطرات قانونی جمع‌آوری کنیم.

📅۱۴ اسفند ۱۴۰۴
```html

پارسینگ داده‌های رقبا یک عمل رایج برای بازاریابان، فروشندگان بازارهای آنلاین و آژانس‌ها است. شما قیمت‌ها را در Wildberries زیر نظر دارید، آگهی‌ها را از Avito جمع‌آوری می‌کنید و تنوع محصولات رقبای خود را تحلیل می‌کنید. اما بیشتر سایت‌ها درخواست‌های انبوه را مسدود می‌کنند و نادیده گرفتن فایل robots.txt می‌تواند به مشکلات قانونی منجر شود. در این مقاله بررسی می‌کنیم که چگونه می‌توان از پروکسی به طور اخلاقی برای پارسینگ استفاده کرد: رعایت قوانین سایت‌ها، جلوگیری از مسدود شدن و جمع‌آوری داده‌ها بدون خطر برای کسب‌وکار.

robots.txt چیست و چرا برای سایت‌ها ضروری است

فایل robots.txt یک سند متنی در ریشه سایت است که به ربات‌های جستجو و پارسرها می‌گوید کدام بخش‌ها را می‌توان اسکن کرد و کدام بخش‌ها ممنوع است. به عنوان مثال، یک فروشگاه اینترنتی می‌تواند ایندکس کردن سبد خرید یا حساب کاربری را ممنوع کند تا این صفحات در گوگل ظاهر نشوند.

یک فایل robots.txt معمولی به این شکل است:

User-agent: *
Disallow: /admin/
Disallow: /cart/
Disallow: /api/
Crawl-delay: 10

User-agent: Googlebot
Allow: /

Sitemap: https://example.com/sitemap.xml

تجزیه و تحلیل دستورات:

  • User-agent: * — قوانین برای همه ربات‌ها (ستاره به معنای "هر ربات")
  • Disallow: /admin/ — اسکن کردن بخش /admin/ ممنوع است
  • Crawl-delay: 10 — تأخیر 10 ثانیه‌ای بین درخواست‌ها
  • User-agent: Googlebot — قوانین خاص برای گوگل (همه چیز مجاز است)

چرا سایت‌ها از robots.txt استفاده می‌کنند:

  1. محافظت در برابر بارگذاری سرور — پارسینگ انبوه بار سنگینی بر روی سرور ایجاد می‌کند و کارایی را برای کاربران واقعی کاهش می‌دهد
  2. پنهان کردن صفحات فنی — سبد خرید، فرم‌های پرداخت، نقاط پایانی API نباید ایندکس شوند
  3. محافظت از داده‌های تجاری — بازارهای آنلاین نمی‌خواهند رقبای آنها به راحتی کل کاتالوگ محصولات را استخراج کنند
  4. صرفه‌جویی در ترافیک — هر درخواست ربات هزینه‌ای برای صاحب سایت دارد

مهم: robots.txt یک توصیه است، نه یک مانع فنی. این فایل به صورت فیزیکی دسترسی را مسدود نمی‌کند، اما نادیده گرفتن قوانین می‌تواند به مسدود شدن IP شما یا دعاوی حقوقی منجر شود (به ویژه در ایالات متحده و اروپا).

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

قوانین روسیه

در روسیه قانونی خاص درباره پارسینگ وجود ندارد، اما اصول کلی اعمال می‌شود:

  • حق کپی‌برداری (قانون مدنی فدراسیون روسیه، ماده 1259) — نمی‌توان متون، عکس‌ها، توضیحات محصولات منحصر به فرد را بدون اجازه صاحب حق کپی‌برداری کپی کرد. پارسینگ قیمت‌ها و ویژگی‌ها معمولاً ایمن است، زیرا این داده‌ها واقعی هستند.
  • داده‌های شخصی (152-ФЗ) — جمع‌آوری داده‌های شخصی کاربران (نام و نام خانوادگی، تلفن‌ها، ایمیل) بدون رضایت ممنوع است. این شامل پارسینگ پروفایل‌های شبکه‌های اجتماعی یا پایگاه‌های داده تماس‌ها می‌شود.
  • رقابت ناعادلانه (ماده 14.33 قانون تخلفات اداری فدراسیون روسیه) — اگر پارسینگ برای کپی‌برداری از مدل کسب‌وکار یا فریب مشتریان استفاده شود، ممکن است جریمه‌ای تا 500,000 روبل دریافت کنید.

قوانین ایالات متحده و اروپا

در ایالات متحده و اتحادیه اروپا قوانین سخت‌گیرانه‌تری وجود دارد:

  • CFAA (قانون تقلب و سوءاستفاده کامپیوتری، ایالات متحده) — دسترسی غیرمجاز به سیستم‌های کامپیوتری به عنوان جرم محسوب می‌شود. نقض robots.txt می‌تواند به عنوان "دسترسی غیرمجاز" تفسیر شود. یک مورد معروف: LinkedIn vs hiQ Labs (2022) — دادگاه حکم داد که پارسینگ داده‌های عمومی قانونی است، اما نادیده گرفتن موانع فنی (مانند کپچا) قانونی نیست.
  • GDPR (قانون عمومی حفاظت از داده‌ها، اتحادیه اروپا) — جمع‌آوری داده‌های شخصی شهروندان اتحادیه اروپا بدون رضایت صریح ممنوع است. جریمه‌ها تا 20 میلیون یورو یا 4% از گردش مالی سالانه شرکت است.
  • شرایط خدمات (توافق‌نامه‌های کاربری) — بسیاری از سایت‌ها به صراحت در قوانین خود پارسینگ را ممنوع می‌کنند. نقض این قوانین می‌تواند به دعاوی حقوقی به دلیل نقض قرارداد منجر شود.

نکته عملی: قبل از پارسینگ، سه سند را بررسی کنید: robots.txt، شرایط خدمات و سیاست حفظ حریم خصوصی سایت هدف. اگر پارسینگ به وضوح ممنوع شده است — به دنبال منابع داده‌های جایگزین باشید (API عمومی، برنامه‌های همکاری، دیتاست‌های آماده).

چه چیزهایی را می‌توان به‌طور ایمن پارس کرد

نوع داده ریسک توضیح
قیمت‌های محصولات پایین داده‌های واقعی، تحت حق کپی‌برداری نیستند
ویژگی‌های محصولات پایین داده‌های فنی ایمن هستند
توضیحات منحصر به فرد بالا تحت حق کپی‌برداری هستند
عکس‌های محصولات بالا نیاز به اجازه صاحب حق کپی‌برداری دارد
اطلاعات کاربران بحرانی نقض 152-ФЗ و GDPR
آمار عمومی پایین داده‌های باز ایمن هستند

پارسینگ اخلاقی: چگونه داده‌ها را بدون نقض قوانین جمع‌آوری کنیم

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

اصول اصلی پارسینگ اخلاقی

  1. به robots.txt پایبند باشید — اگر بخشی برای پارسینگ ممنوع است، سعی نکنید آن را دور بزنید. به دنبال منابع داده‌های جایگزین باشید.
  2. سرعت درخواست‌ها را محدود کنید — 1000 درخواست در ثانیه ارسال نکنید. بین درخواست‌ها 2-10 ثانیه تأخیر بگذارید تا سرور را تحت فشار قرار ندهید.
  3. از User-Agent پارسر خود استفاده کنید — خود را به عنوان یک کاربر عادی جا نزنید. یک User-Agent صادقانه مشخص کنید، مثلاً: "MyCompanyParser/1.0 (contact@mycompany.com)". این به مدیران سایت اجازه می‌دهد تا در صورت بروز مشکل با شما تماس بگیرند.
  4. فقط داده‌های عمومی را پارس کنید — سعی نکنید به بخش‌های خصوصی، API یا پایگاه‌های داده دسترسی پیدا کنید.
  5. داده‌های کپی‌شده را دوباره نفروشید — از اطلاعات جمع‌آوری‌شده برای نیازهای داخلی (تحلیل رقبا، نظارت بر قیمت‌ها) استفاده کنید، نه برای ایجاد یک سرویس رقیب.
  6. داده‌ها را کش کنید — یک صفحه را چندین بار درخواست نکنید. نتایج را به صورت محلی ذخیره کنید و به صورت دوره‌ای (یک بار در روز، یک بار در هفته) به‌روزرسانی کنید.

زمانی که نباید پارس کنید

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

  • سایت API ارائه می‌دهد — بسیاری از بازارهای آنلاین (Wildberries، Ozon، Yandex.Market) API‌های رسمی برای شرکا دارند. از آنها به جای پارسینگ استفاده کنید — این سریع‌تر، قانونی‌تر و مطمئن‌تر است.
  • داده‌ها با کپچا یا احراز هویت محافظت می‌شوند — دور زدن این محافظت می‌تواند به عنوان هک سیستم تلقی شود.
  • سایت به وضوح در شرایط خدمات پارسینگ را ممنوع کرده است — ریسک دعاوی حقوقی بسیار بالاست.
  • شما داده‌های شخصی جمع‌آوری می‌کنید — این نقض GDPR و 152-ФЗ با جریمه‌های سنگین است.

چگونه robots.txt را به درستی بخوانیم و رعایت کنیم

فایل robots.txt در ریشه دامنه قرار دارد: https://example.com/robots.txt. قبل از شروع پارسینگ همیشه این فایل را بررسی کنید.

دستورات اصلی robots.txt

دستور معنی مثال
User-agent برای کدام ربات قوانین اعمال می‌شود User-agent: * (همه ربات‌ها)
Disallow بخش‌های ممنوع برای پارسینگ Disallow: /admin/
Allow بخش‌های مجاز (استثنا از Disallow) Allow: /public/
Crawl-delay حداقل تأخیر بین درخواست‌ها (به ثانیه) Crawl-delay: 10
Sitemap لینک به نقشه سایت (لیست تمام صفحات) Sitemap: /sitemap.xml

نمونه‌های robots.txt و نحوه تفسیر آنها

نمونه 1: ممنوعیت کامل پارسینگ

User-agent: *
Disallow: /

این به این معنی است: "به همه ربات‌ها اجازه داده نشده است که کل سایت را اسکن کنند". پارسینگ چنین سایتی نقض قوانین صاحب آن است. به دنبال منابع داده‌های جایگزین باشید.

نمونه 2: محدودیت‌های انتخابی

User-agent: *
Disallow: /admin/
Disallow: /api/
Disallow: /cart/
Allow: /products/
Crawl-delay: 5

این به این معنی است: "می‌توان بخش /products/ (محصولات) را پارس کرد، اما /admin/، /api/ و /cart/ ممنوع است. بین درخواست‌ها 5 ثانیه تأخیر بگذارید". این شرایط عادی است — می‌توان محصولات را با رعایت محدودیت‌ها پارس کرد.

نمونه 3: قوانین برای ربات‌های خاص

User-agent: Googlebot
Allow: /

User-agent: *
Disallow: /
Crawl-delay: 10

این به این معنی است: "گوگل می‌تواند کل سایت را اسکن کند، اما سایر ربات‌ها نمی‌توانند". اگر شما گوگل نیستید، پارسینگ ممنوع است.

چگونه قبل از پارسینگ robots.txt را بررسی کنیم

بیشتر زبان‌های برنامه‌نویسی کتابخانه‌هایی برای بررسی خودکار robots.txt دارند. نمونه‌ای در Python:

from urllib.robotparser import RobotFileParser

rp = RobotFileParser()
rp.set_url("https://example.com/robots.txt")
rp.read()

# بررسی می‌کنیم که آیا می‌توان صفحه را پارس کرد
url = "https://example.com/products/item123"
user_agent = "MyParser/1.0"

if rp.can_fetch(user_agent, url):
    print("پارسینگ مجاز است")
else:
    print("پارسینگ توسط robots.txt ممنوع است")

این به طور خودکار قوانین را بررسی می‌کند و به شما می‌گوید که آیا می‌توان یک URL خاص را پارس کرد.

محدودیت نرخ و تأخیر بین درخواست‌ها

محدودیت نرخ (Rate Limiting) — این یک محافظت برای سایت‌ها در برابر بارگذاری بیش از حد است. اگر شما درخواست‌های زیادی را در مدت زمان کوتاهی ارسال کنید، سرور ممکن است IP شما را مسدود کند یا کپچا نشان دهد.

چرا رعایت تأخیرها مهم است

  • اجتناب از مسدود شدن IP — سایت‌ها فرکانس درخواست‌ها را از یک IP ردیابی می‌کنند. اگر شما 100 درخواست در دقیقه ارسال کنید، به عنوان یک ربات مسدود خواهید شد.
  • کاهش بار بر روی سرور — پارسینگ انبوه می‌تواند سایت را "پایین بیاورد"، به ویژه اگر این یک منبع کوچک در یک هاستینگ ارزان باشد.
  • رعایت Crawl-delay از robots.txt — اگر سایت تأخیر 10 ثانیه‌ای را مشخص کرده است، نادیده گرفتن این قانون غیر اخلاقی است.
  • رفتار طبیعی‌تر — کاربران عادی 10 صفحه در ثانیه باز نمی‌کنند. تأخیرها باعث می‌شوند پارسر شما شبیه یک انسان واقعی باشد.

تأخیرهای پیشنهادی برای وظایف مختلف

نوع پارسینگ تأخیر بین درخواست‌ها توضیح
سایت کوچک (تا 1000 صفحه) 5-10 ثانیه قدرت پایین سرور
سایت متوسط (فروشگاه اینترنتی) 2-5 ثانیه تعادل بهینه
بازار بزرگ (Wildberries، Ozon) 1-3 ثانیه زیرساخت قوی، اما محافظت شدید
نقاط پایانی API طبق محدودیت‌های API (معمولاً 10-100 درخواست در دقیقه) به مستندات API مراجعه کنید
شبکه‌های اجتماعی (Instagram، VK) 10-30 ثانیه محدودیت‌های بسیار سخت، ریسک بالای مسدود شدن

چگونه تأخیرها را در کد پیاده‌سازی کنیم

نمونه‌ای در Python با استفاده از کتابخانه time:

import time
import requests

urls = [
    "https://example.com/product1",
    "https://example.com/product2",
    "https://example.com/product3"
]

for url in urls:
    response = requests.get(url)
    print(f"پارس کردیم: {url}")
    
    # تأخیر 3 ثانیه‌ای قبل از درخواست بعدی
    time.sleep(3)

برای سناریوهای پیچیده‌تر از تأخیرهای تصادفی (random delay) استفاده کنید تا رفتار طبیعی‌تری داشته باشید:

import time
import random

for url in urls:
    response = requests.get(url)
    
    # تأخیر تصادفی بین 2 تا 5 ثانیه
    delay = random.uniform(2, 5)
    time.sleep(delay)

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

حتی اگر شما به robots.txt پایبند باشید و تأخیرها را رعایت کنید، پارسینگ حجم زیادی از داده‌ها از یک IP می‌تواند مشکوک به نظر برسد. چرخش پروکسی کمک می‌کند تا درخواست‌ها را بین IP‌های مختلف توزیع کنید و رفتار چندین کاربر واقعی را شبیه‌سازی کنید.

چرا چرخش پروکسی ضروری است

  • دور زدن محدودیت نرخ — اگر محدودیت 100 درخواست در ساعت از یک IP باشد، 10 پروکسی به شما 1000 درخواست در ساعت می‌دهد.
  • توزیع جغرافیایی — برای پارسینگ داده‌های منطقه‌ای (قیمت‌ها در Wildberries در مسکو و ولادی‌وستوک) به پروکسی‌های مختلف از شهرهای مختلف نیاز دارید.
  • کاهش مشکوک بودن — درخواست‌ها از IP‌های مختلف به عنوان ترافیک واقعی به نظر می‌رسند.
  • پشتیبان‌گیری — اگر یک پروکسی مسدود شود، پارسر به طور خودکار به دیگری سوئیچ می‌کند.

کدام پروکسی‌ها برای پارسینگ اخلاقی استفاده کنیم

نوع پروکسی مزایا معایب چه زمانی استفاده کنیم
پروکسی‌های مسکونی IP‌های واقعی کاربران خانگی، ریسک پایین مسدود شدن گران‌تر از سایر انواع پارسینگ شبکه‌های اجتماعی، بازارهای آنلاین با محافظت قوی
پروکسی‌های موبایل IP‌های اپراتورهای موبایل، حداکثر اعتماد گران‌ترین، IP‌های کمتری در دسترس پارسینگ Instagram، TikTok، اپلیکیشن‌های موبایل
پروکسی‌های دیتاسنتر ارزان، سرعت بالا به راحتی شناسایی می‌شوند، اغلب در لیست سیاه هستند پارسینگ سایت‌های ساده، تست

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

استراتژی‌های چرخش پروکسی

  1. چرخش برای هر درخواست — هر درخواست از یک IP جدید ارسال می‌شود. مناسب برای پارسینگ سایت‌های با محدودیت‌های سخت (شبکه‌های اجتماعی، بازارهای آنلاین).
  2. چرخش بر اساس زمان (هر 5-10 دقیقه) — یک IP برای چندین درخواست استفاده می‌شود و سپس تغییر می‌کند. رفتار طبیعی‌تری دارد.
  3. جلسات چسبنده (Sticky sessions) — یک IP برای کل جلسه کاربر استفاده می‌شود (به عنوان مثال، احراز هویت + پارسینگ حساب کاربری). برای سایت‌های با احراز هویت ضروری است.
  4. چرخش جغرافیایی — برای هر منطقه از پروکسی‌های آن منطقه استفاده می‌شود. به عنوان مثال: پارسینگ قیمت‌ها در Wildberries در مسکو — پروکسی از مسکو.

نمونه‌ای از چرخش پروکسی در Python

import requests
import random
import time

# لیست پروکسی‌ها (آنها را با واقعی‌ها جایگزین کنید)
proxies_list = [
    {"http": "http://user:pass@proxy1.example.com:8080"},
    {"http": "http://user:pass@proxy2.example.com:8080"},
    {"http": "http://user:pass@proxy3.example.com:8080"}
]

urls = [
    "https://example.com/product1",
    "https://example.com/product2",
    "https://example.com/product3"
]

for url in urls:
    # پروکسی تصادفی انتخاب کنید
    proxy = random.choice(proxies_list)
    
    try:
        response = requests.get(url, proxies=proxy, timeout=10)
        print(f"پارس کردیم {url} از طریق {proxy}")
    except Exception as e:
        print(f"خطا با پروکسی {proxy}: {e}")
    
    # تأخیر 3 ثانیه‌ای
    time.sleep(3)

موارد عملی: پارسینگ بازارهای آنلاین و رقبا

بیایید سناریوهای واقعی پارسینگ اخلاقی برای کسب‌وکار را بررسی کنیم.

موارد 1: نظارت بر قیمت‌ها در Wildberries

وظیفه: شما محصولات را در Wildberries می‌فروشید و می‌خواهید قیمت‌های رقبای خود را زیر نظر داشته باشید تا قیمت‌های خود را تنظیم کنید.

مشکلات:

  • Wildberries IP را در صورت درخواست‌های مکرر مسدود می‌کند
  • قیمت‌ها به منطقه تحویل بستگی دارد
  • باید روزانه 100-500 محصول را پارس کنید

راه‌حل اخلاقی:

  1. robots.txt را بررسی کنید — Wildberries پارسینگ صفحات محصولات را مجاز می‌داند، اما نقاط پایانی API را ممنوع می‌کند.
  2. از پروکسی‌های مسکونی استفاده کنید — برای هر منطقه (مسکو، سن‌پترزبورگ، نووسیبیرسک) پروکسی از آن منطقه بگیرید.
  3. چرخش برای هر درخواست — هر محصول را از یک IP جدید پارس کنید.
  4. تأخیر 2-3 ثانیه‌ای — بین درخواست‌ها وقفه بگذارید.
  5. روزانه پارس کنید — نیازی به به‌روزرسانی قیمت‌ها هر ساعت نیست، نظارت روزانه کافی است.

نتیجه: شما قیمت‌های به‌روز رقبای خود را بدون مسدود شدن دریافت می‌کنید. Wildberries بار غیرطبیعی را مشاهده نمی‌کند، زیرا درخواست‌ها در زمان و IP توزیع شده‌اند.

موارد 2: پارسینگ آگهی‌ها در Avito

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

مشکلات:

  • Avito در صورت فعالیت مشکوک کپچا نشان می‌دهد
  • باید 5000+ آگهی را پارس کنید
  • داده‌ها هر روز به‌روزرسانی می‌شوند

راه‌حل اخلاقی:

  1. robots.txt را بررسی کنید — Avito پارسینگ صفحات آگهی‌ها را مجاز می‌داند، اما با محدودیت Crawl-delay: 5 ثانیه.
  2. از پروکسی‌های مسکونی استفاده کنید — چرخش هر 10 درخواست (نه برای هر درخواست، تا مشکوک به نظر نرسد).
  3. تأخیر 5-7 ثانیه‌ای — رعایت Crawl-delay از robots.txt.
  4. در زمان شب پارس کنید — زمانی که بار روی سایت حداقل است (2-6 صبح).
  5. داده‌ها را کش کنید — یک آگهی را دو بار پارس نکنید، نتایج را در پایگاه داده ذخیره کنید.

نتیجه: شما در طول شب تمام آگهی‌های جدید را بدون کپچا و مسدود شدن جمع‌آوری می‌کنید. Avito بار اضافی را تجربه نمی‌کند و شما داده‌های مورد نیاز را دریافت می‌کنید.

موارد 3: تحلیل تنوع محصولات رقیب

وظیفه: شما مالک یک فروشگاه اینترنتی الکترونیک هستید و می‌خواهید بدانید چه محصولات جدیدی در رقیب شما ظاهر شده است.

مشکلات:

  • سایت رقیب در هاستینگ محافظت‌شده با سیستم ضد ربات قرار دارد
  • باید کاتالوگ 10,000 محصول را پارس کنید
  • می‌خواهید این کار را به صورت هفتگی انجام دهید

راه‌حل اخلاقی:

  1. robots.txt را بررسی کنید — پارسینگ /catalog/ مجاز است، اما /admin/ و /api/ ممنوع است.
  2. از نقشه سایت (Sitemap) استفاده کنید — به جای بازدید از تمام صفحات به صورت دستی، لیست URL‌ها را از sitemap.xml بگیرید (این سریع‌تر است و بار اضافی ایجاد نمی‌کند).
  3. پروکسی‌های مسکونی با چرخش هر 5 دقیقه — یک IP 20-30 درخواست انجام می‌دهد و سپس تغییر می‌کند.
  4. تأخیر 3-5 ثانیه‌ای — رفتار کاربران عادی را شبیه‌سازی کنید.
  5. فقط محصولات جدید را پارس کنید — کاتالوگ فعلی را با قبلی مقایسه کنید و فقط تغییرات را پارس کنید.

نتیجه: شما به‌طور هفتگی لیست محصولات جدید رقیب را بدون مسدود شدن دریافت می‌کنید. سایت رقیب هیچ مشکلی ندارد و شما مزیت رقابتی کسب می‌کنید.

ابزارهایی برای خودکارسازی با رعایت قوانین

ابزارهای آماده‌ای وجود دارند که پارسینگ اخلاقی را ساده کرده و به‌طور خودکار به قوانین robots.txt پایبند هستند.

Scrapy (Python)

Scrapy — یک فریم‌ورک محبوب برای پارسینگ در Python است. این ابزار به‌طور خودکار robots.txt را بررسی کرده و به قوانین پایبند است.

تنظیم رعایت robots.txt در Scrapy:

# settings.py

# فعال کردن رعایت robots.txt
ROBOTSTXT_OBEY = True

# تأخیر بین درخواست‌ها (به ثانیه)
DOWNLOAD_DELAY = 3

# تأخیر تصادفی (از 0.5 تا 1.5 * DOWNLOAD_DELAY)
RANDOMIZE_DOWNLOAD_DELAY = True

# محدودیت درخواست‌های همزمان به یک دامنه
CONCURRENT_REQUESTS_PER_DOMAIN = 1

# User-Agent پارسر شما
USER_AGENT = 'MyCompanyParser/1.0 (+http://mycompany.com/bot)'

با این تنظیمات، Scrapy به‌طور خودکار قبل از پارسینگ robots.txt را بررسی کرده و به تمام قوانین پایبند خواهد بود.

Apify (پلتفرم ابری)

Apify — یک پلتفرم ابری برای وب‌اسکرپینگ بدون کد است. شما پارسر را از طریق رابط بصری ایجاد می‌کنید و Apify به‌طور خودکار پروکسی و رعایت محدودیت‌ها را مدیریت می‌کند.

مزایای پارسینگ اخلاقی:

  • چرخش پروکسی داخلی (پروکسی‌های مسکونی و دیتاسنتر)
  • رعایت خودکار robots.txt
  • تنظیم تأخیرها از طریق رابط کاربری
  • برنامه‌ریزی زمان اجرا (پارسینگ روزانه/هفتگی)

Octoparse (پارسر بدون کد)

Octoparse — یک برنامه دسکتاپ برای پارسینگ بدون برنامه‌نویسی است. این ابزار برای بازاریابان و فروشندگانی که نمی‌دانند کد بنویسند مناسب است.

چگونه پارسینگ اخلاقی را در Octoparse تنظیم کنیم:

  1. تنظیمات وظیفه (Task Settings) را باز کنید
  2. گزینه "احترام به robots.txt" را فعال کنید
  3. تأخیر (Delay) 3-5 ثانیه را تنظیم کنید
  4. پروکسی را در بخش "تنظیمات پروکسی" متصل کنید
  5. برنامه‌ریزی زمان اجرا (Schedule) را تنظیم کنید

Puppeteer/Playwright (JavaScript)

Puppeteer و Playwright — کتابخانه‌هایی برای خودکارسازی مرورگر هستند. آنها برای پارسینگ سایت‌های با رندرینگ JavaScript مناسب هستند.

نمونه‌ای از پارسینگ اخلاقی با Puppeteer:

const puppeteer = require('puppeteer');
const robotsParser = require('robots-parser');

async function ethicalScrape(url) {
  // بررسی robots.txt
  const robots = robotsParser('https://example.com/robots.txt', 
    'MyParser/1.0');
  
  if (!robots.isAllowed(url)) {
    console.log('پارسینگ توسط robots.txt ممنوع است');
    return;
  }
  
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  
  // تأخیر قبل از بارگذاری صفحه
  await new Promise(resolve => setTimeout(resolve, 3000));
  
  await page.goto(url);
  const data = await page.evaluate(() => {
    return document.querySelector('h1').innerText;
  });
  
  console.log(data);
  await browser.close();
}

ethicalScrape('https://example.com/product1');

نتیجه‌گیری

پارسینگ اخلاقی از طریق پروکسی تعادلی بین نیازهای کسب‌وکار و احترام به صاحبان سایت‌ها است. با رعایت robots.txt، ایجاد تأخیر بین درخواست‌ها و استفاده از چرخش پروکسی، می‌توانید داده‌های مورد نیاز خود را بدون خطرات قانونی و مسدود شدن جمع‌آوری کنید. اصول اصلی: قبل از پارسینگ robots.txt را بررسی کنید، سرعت درخواست‌ها را محدود کنید، از User-Agent صادقانه استفاده کنید و فقط داده‌های عمومی را پارس کنید. این کار کسب‌وکار شما را از دعاوی حقوقی محافظت کرده و عملکرد پایدار پارسرها را تضمین می‌کند.

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

```