Anonim

আমি একটি ক্লায়েন্টের জন্য একটি ওয়েবসাইট চালিত করি যেখানে তারা বছরের পর বছর ধরে নির্ভুলভাবে এবং ধীরে ধীরে জড়ো করা তথ্যগুলির একটি বৃহত ডাটাবেস প্রদর্শন করে। তারা ওয়েবে বিভিন্ন জায়গায় তাদের ডেটা সন্ধান করছে। পৃষ্ঠার মাধ্যমে তাদের সাইট পৃষ্ঠাতে স্ক্র্যাপার যেতে এবং তাদের নিজস্ব একটি ডেটাবেজে তাদের প্রয়োজনীয় তথ্য বের করার কারণে সম্ভবত এটির বেশি। এবং যদি আপনি অবাক হন, তারা জানেন যে এটি তাদের ডেটা কারণ তাদের সাইটের প্রতিটি বিভাগে একক রোপণ করা ডেটা।

আমি গত কয়েক দিন ধরে এটি নিয়ে প্রচুর গবেষণা করেছি এবং আমি আপনাকে বলতে পারি যে এখানে একটি নিখুঁত ক্যাপচার সমস্ত সমাধান নেই। তবে তাদের জন্য এটি কিছুটা কঠিন করার জন্য আমি বেশ কয়েকটি জিনিস পেয়েছি। এটিই আমি ক্লায়েন্টের জন্য প্রয়োগ করেছি।

অজ্যাক্সাইফাইড পৃষ্ঠাযুক্ত ডেটা

আপনার যদি প্রচুর পৃষ্ঠাভুক্ত ডেটা থাকে এবং আপনি আপনার ইউআরএলটির শেষে একটি আলাদা সংখ্যা যুক্ত করে আপনার ডেটা পৃষ্ঠাভুক্ত করছেন, যেমন: http://www.domain.com/category/programming/2 - তারপরে আপনি তৈরি করছেন ক্রলারের কাজটি এত সহজ। প্রথম সমস্যাটি হ'ল এটি একটি সহজে চিহ্নিতযোগ্য প্যাটার্নে, সুতরাং এই পৃষ্ঠাগুলিতে একটি স্ক্র্যাপার আলগা সেট করা পাই হিসাবে সহজ। দ্বিতীয় সমস্যা, বিভাগের পরবর্তী পৃষ্ঠাগুলির ইউআরএল নির্বিশেষে, সম্ভবত তাদের পরবর্তীটিতে ল্যাচ করার জন্য পরবর্তী এবং পূর্ববর্তী লিঙ্ক থাকবে।

কোনও পৃষ্ঠা পুনরায় লোড ছাড়াই জাভাস্ক্রিপ্টের মাধ্যমে পৃষ্ঠাযুক্ত অঙ্কিত ডেটা লোড করে, এটি প্রচুর পরিমাণে স্ক্র্যাপারের জন্য কাজটিকে উল্লেখযোগ্যভাবে জটিল করে তোলে। গুগল সম্প্রতি সম্প্রতি পাতায় জাভাস্ক্রিপ্ট পার্স করা শুরু করেছে। এই জাতীয় ডেটা পুনরায় লোড করার সামান্য অসুবিধা নেই। আপনি গুগলের জন্য সূচকে কয়েকটি কম পৃষ্ঠা সরবরাহ করেছেন, তবে, প্রযুক্তিগতভাবে, পৃষ্ঠাযুক্ত ডেটাগুলি যে কোনওভাবেই ক্যানোনিকালাইজেশনের মাধ্যমে মূল বিভাগের পৃষ্ঠায় নির্দেশ করা উচিত। আপনার পৃষ্ঠাযুক্ত পৃষ্ঠাগুলির ডেটা অ্যাজ্যাক্সাইফাই করুন।

টেম্পলেট আউটপুট এলোমেলো করুন

স্ক্র্যাপারগুলি প্রায়শই আপনার ডেটার জন্য বিশেষভাবে নির্দিষ্টভাবে কাস্টমাইজ করা হবে। তারা শিরোনামের জন্য একটি নির্দিষ্ট ডিভি আইডি বা ক্লাসে ল্যাচ করবে, আপনার বর্ণনার জন্য প্রতিটি সারিতে 3 য় সেল ইত্যাদি রয়েছে most একই স্ক্রল থেকে আসা বেশিরভাগ ডেটা হিসাবে বেশিরভাগ স্ক্র্যাপারকে কাজ করার জন্য একটি সহজেই চিহ্নিতযোগ্য প্যাটার্ন রয়েছে, একই টেম্পলেট দ্বারা প্রদর্শিত হয়। আপনার ডিভি আইডি এবং শ্রেণীর নামগুলি এলোমেলো করে দিন, 0 প্রস্থের সাথে এলোমেলোভাবে ফাঁকা টেবিল কলামগুলি সন্নিবেশ করুন। স্টাইল্ড ডিভ এবং অন্য টেম্পলেটের সংমিশ্রণে একটি পৃষ্ঠায় একটি টেবিলে আপনার ডেটা দেখান। আপনার ডেটা অনুমানযোগ্যভাবে উপস্থাপনের মাধ্যমে, এটি পূর্বাভাস ও নির্ভুলভাবে স্ক্র্যাপ করা যেতে পারে।

মধুর পাত্র

এটি এর সরলতায় বেশ ঝরঝরে। সাইটের স্ক্র্যাপিং প্রতিরোধ সম্পর্কে আমি বেশ কয়েকটি পৃষ্ঠায় এই পদ্ধতিটি জুড়ে এসেছি।

  • আপনার সার্ভারে একটি নতুন ফাইল তৈরি করুন যার নাম গেটচা.চ.টি.এম.
  • আপনার robots.txt ফাইলটিতে, নিম্নলিখিতগুলি যুক্ত করুন:
    ব্যবহারিক দূত: *
    বাতিল করুন: /gotcha.html

    এটি সেখানে সমস্ত রোবট এবং মাকড়সাগুলিকে আপনার সাইটটিকে ইনডেক্স করে ফাইলটি গটচা.এইচটিএমএলকে সূচী না করে বলে। যে কোনও সাধারণ ওয়েব ক্রলার আপনার রোবটস.টেক্সট ফাইলের শুভেচ্ছাকে সম্মান করবে এবং সেই ফাইলটি অ্যাক্সেস করবে না। যেমন, গুগল এবং বিং আপনি সম্ভবত এই পদক্ষেপটি বাস্তবায়ন করতে এবং পরবর্তী ধাপে যাওয়ার 24 ঘন্টা অপেক্ষা করতে পারেন। এটি নিশ্চিত করবে যে আপনি যখন আপনার রোবটস.টি.এস.টি. ফাইলটি আপডেট করবেন তখন ইতিমধ্যে মধ্য ক্রল হয়ে গিয়েছিল যে কারণে কোনও ক্রলার দুর্ঘটনাক্রমে আপনার দ্বারা অবরুদ্ধ হয়ে পড়ে না।
  • আপনার ওয়েবসাইটের কোথাও getcha.html একটি লিঙ্ক রাখুন। কোথাও কিছু যায় আসে না। আমি ফুটারে সুপারিশ করব, তবে, সিএসএস-তে, এই লিঙ্কটি দৃশ্যমান নয় তা নিশ্চিত করুন;
  • এখন, এই পৃষ্ঠাটি পরিদর্শন করেছেন এমন পের্পের আইপি / সাধারণ তথ্য লগইন করুন এবং তাদের ব্লক করেছেন। বিকল্পভাবে, আপনি তাদের একটি ভুল এবং আবর্জনা ডেটা সরবরাহ করতে একটি স্ক্রিপ্ট নিয়ে আসতে পারেন। অথবা তাদের কাছে আপনার কাছ থেকে একটি দুর্দান্ত ব্যক্তিগত বার্তা।

নিয়মিত ওয়েব দর্শকরা লিঙ্কটি দেখতে পাবে না, সুতরাং এটি দুর্ঘটনাক্রমে ক্লিক হবে না। স্বনামধন্য ক্রোলার (উদাহরণস্বরূপ গুগল), আপনার রোবটস টেক্সটের শুভেচ্ছাকে সম্মান করবে এবং ফাইলটি দেখার সুযোগ দেবে না। সুতরাং, কেবলমাত্র সেই কম্পিউটারগুলিকেই এই পৃষ্ঠাটি জুড়ে হোঁচট খাওয়া উচিত সেগুলি হ'ল দূষিত উদ্দেশ্যগুলি সহ, বা কেউ আপনার উত্স কোডটি দেখছে এবং এলোমেলোভাবে চারপাশে ক্লিক করছে (এবং ওহ হ্যাঁ তা ঘটলে ভাল)।

এটি বেশিরভাগ ক্ষেত্রে কার্যকর না হওয়ার কয়েকটি কারণ রয়েছে। প্রথমত, প্রচুর স্ক্র্যাপারগুলি সাধারণ ওয়েব ক্রলারগুলির মতো কাজ করে না এবং কেবল আপনার সাইটের প্রতিটি পৃষ্ঠা থেকে প্রতিটি লিঙ্ক অনুসরণ করে ডেটা আবিষ্কার করবেন না। স্ক্র্যাপারগুলি প্রায়শই নির্দিষ্ট পৃষ্ঠাগুলিতে স্থির করতে এবং কেবলমাত্র নির্দিষ্ট কাঠামো অনুসরণ করার জন্য নির্মিত হয়। উদাহরণস্বরূপ, কোনও স্ক্র্যাপ কোনও বিভাগের পৃষ্ঠায় শুরু হতে পারে এবং কেবল স্লাগের শব্দ / ডেটা সহ ইউআরএল দেখার জন্য বলেছিল। দ্বিতীয়ত, কেউ যদি অন্যদের মতো একই নেটওয়ার্কে তাদের স্ক্র্যাপ চালাচ্ছে এবং একটি ভাগ করা আইপি ব্যবহার করা হচ্ছে, আপনি পুরো নেটওয়ার্কটি নিষিদ্ধ করবেন। সমস্যা হওয়ার জন্য আপনার কাছে খুব জনপ্রিয় একটি ওয়েবসাইট থাকতে হবে।

ফ্লাইতে চিত্রগুলিতে ডেটা লিখুন

একটি ছোট ছোট ডেটা ক্ষেত্র সন্ধান করুন, অগত্যা পাঠ্যের দীর্ঘতর স্ট্রিং নয় কারণ এটি পৃষ্ঠাটিকে স্টাইলিং কিছুটা আরও কঠিন করে তুলতে পারে। কোনও চিত্রের অভ্যন্তরে এই তথ্যটি আউটপুট দেয়, আমি যথেষ্ট আত্মবিশ্বাসী বোধ করি যে কোনও চিত্রকে গতিশীলভাবে লেখার জন্য প্রায় প্রতিটি প্রোগ্রামিং ভাষায় পদ্ধতি রয়েছে (পিএইচপি, ইমেজ্যাটফটেক্সটে)। এটি সম্ভবত সংখ্যার মানগুলির সাথে সবচেয়ে কার্যকর কারণ সংখ্যাগুলি আরও অনেক তুচ্ছ এসইও সুবিধা সরবরাহ করে।

বিকল্প

এটি এই প্রকল্পের জন্য কোনও বিকল্প ছিল না। নির্দিষ্ট পরিমাণ পেজভিউয়ের পরে লগইন প্রয়োজন, বা লগ ইন না করে সীমিত পরিমাণে ডেটা প্রদর্শন করা ie অর্থাত্, যদি আপনার 10 টি কলাম থাকে, কেবল লগ-ইন না করা ব্যবহারকারীদের জন্য 5 প্রদর্শন করুন।

এই ভুল করবেন না

বটের ব্যবহারকারী-এজেন্টের উপর ভিত্তি করে কোনও ধরণের সমাধান নিয়ে আসার চেষ্টা করে বিরক্ত করবেন না। এই তথ্যগুলি সহজেই কোনও স্ক্র্যাপার দ্বারা প্রতারিত হতে পারে যারা জানে যে তারা কী করছে। উদাহরণস্বরূপ গুগল বট সহজেই অনুকরণ করা যায়। আপনি সম্ভবত গুগল নিষিদ্ধ করতে চান না।

সাইট স্ক্র্যাপিং রোধ করা হচ্ছে