দ্রষ্টব্য: যেহেতু এই উত্তরের সম্পূর্ণ সংস্করণ স্ট্যাক ওভারফ্লো দৈর্ঘ্যের সীমা অতিক্রম করেছে, তাই আপনাকে আরও টিপস এবং বিশদ সহ প্রসারিত সংস্করণটি পড়তে গিটহাবের দিকে যেতে হবে।
স্ক্র্যাপিং (বা ওয়েবস্ক্র্যাপিং , স্ক্রেনসক্র্যাপিং , ওয়েব ডেটা মাইনিং , ওয়েব ফসল তোলা , বা ওয়েব ডেটা এক্সট্রাকশন নামে পরিচিত) বাধা দেওয়ার জন্য , এই স্ক্র্যাপারগুলি কীভাবে কাজ করে তা এবং এক্সটেনশনের মাধ্যমে কী তাদের ভাল কাজ করতে বাধা দেয় তা জানতে সহায়তা করে।
বিভিন্ন ধরণের স্ক্র্যাপ রয়েছে এবং প্রতিটি আলাদা আলাদাভাবে কাজ করে:
যেমন মাকড়সা, Google এর বট মত বা ওয়েবসাইট copiers HTtrack , যা যাও recursively অর্ডার ডেটা পেতে অন্য পৃষ্ঠাগুলির লিঙ্কগুলি অনুসরণ করুন। এগুলি কখনও কখনও নির্দিষ্ট পৃষ্ঠা পেতে লক্ষ্যযুক্ত স্ক্র্যাপিংয়ের জন্য ব্যবহৃত হয়, প্রায়শই প্রতিটি পৃষ্ঠা থেকে পছন্দসই ডেটা উত্তোলনের জন্য এইচটিএমএল পার্সারের সাথে মিশ্রিত হয়।
শেল স্ক্রিপ্টস: কখনও কখনও, সাধারণ ইউনিক্স সরঞ্জামগুলি স্ক্র্যাপিংয়ের জন্য ব্যবহৃত হয়: পৃষ্ঠা ডাউনলোড করার জন্য উইজেট বা কার্ল এবং ডেটা বের করার জন্য গ্রেপ (রেজেক্স)।
এইচটিএমএল পার্সার, যেমন জসপ, স্কেরাপি এবং অন্যদের উপর ভিত্তি করে । শেল-স্ক্রিপ্ট রেজেক্স ভিত্তিক একটিগুলির মতো, এইচটিএমএলে নিদর্শনগুলির উপর ভিত্তি করে পৃষ্ঠাগুলি থেকে ডেটা আহরণ করে কাজ করে, সাধারণত সমস্ত কিছু উপেক্ষা করে।
উদাহরণস্বরূপ: যদি আপনার ওয়েবসাইটটিতে কোনও অনুসন্ধান বৈশিষ্ট্য থাকে, তবে এই জাতীয় স্ক্র্যাপার কোনও অনুসন্ধানের জন্য একটি অনুরোধ জমা দিতে পারে এবং ফলাফলের পৃষ্ঠা থেকে এইচটিএমএল থেকে সমস্ত ফলাফলের লিঙ্ক এবং তাদের শিরোনামগুলি পেতে পারে, বিশেষভাবে কেবল অনুসন্ধান ফলাফলের লিঙ্ক এবং তাদের শিরোনামগুলি পেতে । এগুলি সবচেয়ে সাধারণ।
উদাহরণস্বরূপ স্ক্রীনস্ক্রেপারগুলি। সেলেনিয়াম বা ফ্যান্টমজেএস , যা আপনার ওয়েবসাইটকে একটি সত্যিকারের ব্রাউজারে খোলে, জাভাস্ক্রিপ্ট, এজেএক্স এবং আরও কিছু চালায় এবং তারপরে সাধারণত ওয়েবপেজ থেকে পছন্দসই পাঠ্যটি পান:
আপনার পৃষ্ঠাটি লোড হয়ে যাওয়ার পরে এবং জাভাস্ক্রিপ্ট চলার পরে ব্রাউজার থেকে এইচটিএমএল পাওয়া এবং তারপরে পছন্দসই ডেটা বের করার জন্য এইচটিএমএল পার্সার ব্যবহার করে। এগুলি সর্বাধিক সাধারণ এবং এইচটিএমএল পার্সার / স্ক্র্যাপার ভাঙ্গার জন্য অনেকগুলি পদ্ধতি এখানেও কাজ করে।
রেন্ডার করা পৃষ্ঠাগুলির স্ক্রিনশট নেওয়া এবং তারপরে স্ক্রিনশট থেকে পছন্দসই পাঠ্যটি বের করার জন্য ওসিআর ব্যবহার করা। এগুলি বিরল, এবং কেবলমাত্র ডেডিকেটেড স্ক্র্যাপার যারা সত্যই আপনার ডেটা চান এটি সেট আপ করবে।
যেমন Webscraping সেবা ScrapingHub বা কিমোনো । প্রকৃতপক্ষে, এমন লোক আছেন যাদের কাজ হ'ল কীভাবে আপনার সাইটটি স্ক্র্যাপ করবেন এবং অন্যদের ব্যবহারের জন্য সামগ্রীটি টেনে আনবেন।
আশ্চর্যজনকভাবে, পেশাদার স্ক্র্যাপিং পরিষেবাদিগুলি প্রতিরোধ করা সবচেয়ে কঠিন, তবে কীভাবে আপনার সাইটটিকে স্ক্র্যাপ করা যায় তা নির্ধারণ করার জন্য আপনি যদি কঠোর এবং সময়োপযোগী হন, তবে এইগুলি (এবং যারা তাদের এটি করার জন্য অর্থ প্রদান করে) আপনার ওয়েবসাইটকে স্ক্র্যাপ করার জন্য বিরক্ত হবে না।
ফ্রেম সহ অন্যান্য সাইটের পৃষ্ঠাগুলিতে আপনার ওয়েবসাইট এম্বেড করা এবং মোবাইল অ্যাপ্লিকেশনগুলিতে আপনার সাইট এম্বেড করা।
প্রযুক্তিগতভাবে স্ক্র্যাপিং না করার সময়, মোবাইল অ্যাপস (অ্যান্ড্রয়েড এবং আইওএস) ওয়েবসাইটগুলি এম্বেড করতে পারে এবং কাস্টম সিএসএস এবং জাভাস্ক্রিপ্ট ইনজেক্ট করতে পারে, এইভাবে আপনার পৃষ্ঠাগুলির উপস্থিতি পুরোপুরি বদলে দেয়।
মানব অনুলিপি - আটকান: লোকেরা আপনার সামগ্রীটি অন্যত্র ব্যবহার করার জন্য অনুলিপি এবং পেস্ট করবে।
এই বিভিন্ন ধরণের স্ক্র্যাপের মধ্যে প্রচুর ওভারল্যাপ রয়েছে এবং বিভিন্ন স্ক্র্যাপাররা একই রকম আচরণ করবে, যদিও তারা বিভিন্ন প্রযুক্তি এবং পদ্ধতি ব্যবহার করে।
এই টিপসটি বেশিরভাগ আমার নিজস্ব ধারণা, বিভিন্ন স্ক্র্যাপার লেখার সময় বিভিন্ন সমস্যার মুখোমুখি হয়েছিল, পাশাপাশি ইন্টারভেস্টের কাছ থেকে পাওয়া তথ্য এবং ধারণাগুলির বিট।
কীভাবে স্ক্র্যাপিং বন্ধ হবে
আপনি এটি সম্পূর্ণরূপে প্রতিরোধ করতে পারবেন না , যেহেতু আপনি যা করেন না কেন নির্ধারিত স্ক্র্যাপরা কীভাবে স্ক্র্যাপ করবেন তা নির্ধারণ করতে পারে। তবে কয়েকটি জিনিস করে আপনি প্রচুর স্ক্র্যাপিং বন্ধ করতে পারেন:
আপনার লগগুলি এবং ট্র্যাফিক নিদর্শনগুলি পর্যবেক্ষণ করুন; আপনি যদি অস্বাভাবিক ক্রিয়াকলাপ দেখেন তবে অ্যাক্সেস সীমাবদ্ধ করুন:
আপনার লগগুলি নিয়মিত পরীক্ষা করুন এবং স্বয়ংক্রিয় অ্যাক্সেস (স্ক্র্যাপার) এর অস্বাভাবিক ক্রিয়াকলাপের সূত্র, একই আইপি ঠিকানা থেকে অনেকগুলি অনুরূপ ক্রিয়াকলাপের ক্ষেত্রে আপনি অ্যাক্সেস অবরুদ্ধ বা সীমাবদ্ধ করতে পারেন।
বিশেষত, কিছু ধারণা:
হার সীমাবদ্ধকরণ:
কেবলমাত্র ব্যবহারকারীদের (এবং স্ক্র্যাপারদের) নির্দিষ্ট সময়ে সীমাবদ্ধ সংখ্যক ক্রিয়া সম্পাদনের অনুমতি দিন - উদাহরণস্বরূপ, কেবলমাত্র নির্দিষ্ট আইপি ঠিকানা বা ব্যবহারকারীর থেকে প্রতি সেকেন্ডে কয়েকটি অনুসন্ধানের অনুমতি দিন। এটি স্ক্র্যাপারগুলিকে ধীর করবে এবং এগুলি অকার্যকর করে তুলবে। বাস্তবের ব্যবহারকারীর চেয়ে খুব দ্রুত বা দ্রুত সম্পন্ন হয়ে গেলে আপনি ক্যাপচাও প্রদর্শন করতে পারেন।
অস্বাভাবিক ক্রিয়াকলাপ সনাক্ত করুন:
আপনি যদি অস্বাভাবিক ক্রিয়াকলাপ দেখতে পান যেমন নির্দিষ্ট আইপি ঠিকানা থেকে অনেক অনুরূপ অনুরোধ, কেউ অতিরিক্ত সংখ্যক পৃষ্ঠাগুলি দেখছেন বা অস্বাভাবিক সংখ্যক অনুসন্ধান করছেন তবে আপনি অ্যাক্সেস আটকাতে পারবেন, বা পরবর্তী অনুরোধগুলির জন্য একটি ক্যাপচা দেখাতে পারেন।
কেবল আইপি ঠিকানার মাধ্যমে নিরীক্ষণ এবং রেট সীমাটি রাখবেন না - অন্যান্য সূচকগুলিও ব্যবহার করুন:
আপনি যদি ব্লক বা হার সীমাবদ্ধতা করেন তবে এটি কেবল প্রতি-আইপি ঠিকানার ভিত্তিতে করবেন না; নির্দিষ্ট ব্যবহারকারী বা স্ক্র্যাপার সনাক্ত করতে আপনি অন্যান্য সূচক এবং পদ্ধতিগুলি ব্যবহার করতে পারেন। কিছু সূচক যা আপনাকে নির্দিষ্ট ব্যবহারকারী / স্ক্র্যাপার সনাক্ত করতে সহায়তা করতে পারে:
ব্যবহারকারীরা কীভাবে দ্রুত ফর্মগুলি পূরণ করে এবং কোন বোতামে তারা ক্লিক করে;
আপনি জাভাস্ক্রিপ্টের সাহায্যে প্রচুর তথ্য সংগ্রহ করতে পারেন, যেমন স্ক্রিনের আকার / রেজোলিউশন, টাইমজোন, ইনস্টল করা ফন্ট ইত্যাদি; আপনি ব্যবহারকারীদের সনাক্ত করতে এটি ব্যবহার করতে পারেন।
এইচটিটিপি শিরোনাম এবং তাদের অর্ডার, বিশেষত ব্যবহারকারী-এজেন্ট।
উদাহরণস্বরূপ, আপনি যদি একক আইপি ঠিকানা থেকে অনেক অনুরোধ পেয়ে থাকেন, সমস্ত একই ব্যবহারকারী এজেন্ট, পর্দার আকার (জাভাস্ক্রিপ্ট দ্বারা নির্ধারিত) এবং ব্যবহারকারী (এই ক্ষেত্রে স্ক্র্যাপার) সর্বদা একইভাবে এবং বোতামে ক্লিক করেন নিয়মিত বিরতি, এটি সম্ভবত স্ক্রিন স্ক্র্যাপার; এবং আপনি অস্থায়ীভাবে অনুরূপ অনুরোধগুলি ব্লক করতে পারেন (যেমন IP নির্দিষ্ট আইপি ঠিকানা থেকে আসা ব্যবহারকারী এজেন্ট এবং পর্দার আকারের সমস্ত অনুরোধগুলি ব্লক করুন), এবং এইভাবে আপনি সেই আইপি ঠিকানায় প্রকৃত ব্যবহারকারীদের অসুবিধে করবেন না, যেমন। শেয়ার করা ইন্টারনেট সংযোগের ক্ষেত্রে।
আপনি এটিকে আরও গ্রহণ করতে পারেন, যেমন আপনি অনুরূপ অনুরোধগুলি সনাক্ত করতে পারেন, এমনকি যদি তারা বিভিন্ন আইপি ঠিকানা থেকে আসে তবে বিতরণ স্ক্র্যাপিংয়ের নির্দেশক (বোটনেট বা প্রক্সিগুলির নেটওয়ার্ক ব্যবহার করে একটি স্ক্র্যাপার)। যদি আপনি প্রচুর পরিমাণে অনুরূপ অনুরোধগুলি পান তবে সেগুলি বিভিন্ন আইপি ঠিকানা থেকে আসে তবে আপনি অবরুদ্ধ করতে পারবেন। আবার, অজান্তে প্রকৃত ব্যবহারকারীদের অবরুদ্ধ না করার বিষয়ে সচেতন হন।
এটি জাভাস্ক্রিপ্ট চালিত স্ক্রীনস্ক্রেপারগুলির বিরুদ্ধে কার্যকর হতে পারে, কারণ আপনি তাদের কাছ থেকে প্রচুর তথ্য পেতে পারেন।
সুরক্ষা স্ট্যাক এক্সচেঞ্জ সম্পর্কিত প্রশ্ন:
অস্থায়ীভাবে অ্যাক্সেস ব্লক করার পরিবর্তে ক্যাপচা ব্যবহার করুন:
হার-সীমাবদ্ধকরণ কার্যকর করার সহজ উপায় হ'ল সাময়িকভাবে নির্দিষ্ট সময়ের জন্য অ্যাক্সেস ব্লক করা, তবে ক্যাপচা ব্যবহার করা আরও ভাল হতে পারে, আরও নীচে ক্যাপচায় বিভাগটি দেখুন।
নিবন্ধকরণ এবং লগইন প্রয়োজন
এটি আপনার সাইটের জন্য যদি সম্ভব হয় তবে আপনার সামগ্রীগুলি দেখতে অ্যাকাউন্ট তৈরির প্রয়োজন। এটি স্ক্র্যাপারদের জন্য একটি ভাল প্রতিরোধক, তবে প্রকৃত ব্যবহারকারীদের জন্য এটি একটি ভাল প্রতিরোধকও।
- আপনার যদি অ্যাকাউন্ট তৈরি এবং লগইনের প্রয়োজন হয় তবে আপনি সঠিকভাবে ব্যবহারকারীর এবং স্ক্র্যাপের ক্রিয়াগুলি ট্র্যাক করতে পারেন। এইভাবে, আপনি কোনও নির্দিষ্ট অ্যাকাউন্টটি স্ক্র্যাপ করার জন্য ব্যবহার করা হচ্ছে তা সহজেই সনাক্ত করতে পারেন এবং এটি নিষিদ্ধ করেন। রেট সীমাবদ্ধ করা বা অপব্যবহার শনাক্ত করার মতো বিষয়গুলি (যেমন অল্প সময়ে বিশাল সংখ্যক অনুসন্ধান) সহজ হয়ে যায়, কারণ আপনি কেবল আইপি ঠিকানার পরিবর্তে নির্দিষ্ট স্ক্র্যাপার সনাক্ত করতে পারেন।
অনেক অ্যাকাউন্ট তৈরি করতে স্ক্রিপ্টগুলি এড়ানোর জন্য, আপনার উচিত:
নিবন্ধকরণের জন্য একটি ইমেল ঠিকানা প্রয়োজন এবং অ্যাকাউন্টটি সক্রিয় করতে অবশ্যই একটি লিঙ্ক প্রেরণ করে সেই ইমেল ঠিকানাটি যাচাই করুন। ইমেল ঠিকানার জন্য কেবলমাত্র একটি অ্যাকাউন্টের অনুমতি দিন।
নিবন্ধকরণ / অ্যাকাউন্ট তৈরির সময় একটি ক্যাপচা সমাধান করার প্রয়োজন।
বিষয়বস্তু দেখার জন্য অ্যাকাউন্ট তৈরির প্রয়োজনীয়তা ব্যবহারকারীদের এবং অনুসন্ধান ইঞ্জিনগুলিকে দূরে সরিয়ে দেবে; নিবন্ধটি দেখার জন্য যদি আপনার অ্যাকাউন্ট তৈরির প্রয়োজন হয়, ব্যবহারকারীরা অন্য কোথাও চলে যাবেন।
ক্লাউড হোস্টিং এবং স্ক্র্যাপিং পরিষেবা আইপি ঠিকানাগুলি থেকে অ্যাক্সেস ব্লক করুন
কখনও কখনও, স্ক্র্যাপারগুলি ওয়েব হোস্টিং পরিষেবাগুলি থেকে চালানো হবে, যেমন অ্যামাজন ওয়েব পরিষেবাদি বা জিএই, বা ভিপিএস। এই জাতীয় ক্লাউড হোস্টিং পরিষেবাদি দ্বারা ব্যবহৃত আইপি ঠিকানাগুলি থেকে উত্পন্ন অনুরোধগুলির জন্য আপনার ওয়েবসাইটে অ্যাক্সেস সীমাবদ্ধ করুন (বা একটি ক্যাপচা দেখান)।
একইভাবে, আপনি প্রক্সি বা ভিপিএন সরবরাহকারীদের দ্বারা ব্যবহৃত আইপি ঠিকানাগুলি থেকে অ্যাক্সেসও সীমাবদ্ধ করতে পারেন, কারণ স্ক্র্যাপাররা অনেকগুলি অনুরোধ সনাক্ত না হওয়ার জন্য এ জাতীয় প্রক্সি সার্ভার ব্যবহার করতে পারে।
সতর্কতা অবলম্বন করুন যে প্রক্সি সার্ভার এবং ভিপিএন থেকে অ্যাক্সেস অবরুদ্ধ করে আপনি প্রকৃত ব্যবহারকারীকে নেতিবাচকভাবে প্রভাবিত করবেন।
যদি আপনি অবরুদ্ধ করেন তবে আপনার ত্রুটি বার্তাকে ননডস্ক্রিপ্ট করুন
যদি আপনি অবরুদ্ধ / সীমাবদ্ধ অ্যাক্সেস করেন তবে আপনার অবশ্যই নিশ্চিত হওয়া উচিত যে আপনি কী স্ক্র্যাপারকে অবরুদ্ধ করার কারণে তা না জানিয়ে, যাতে তাদের স্ক্র্যাপটিকে কীভাবে ঠিক করবেন সে সম্পর্কে তাদের ক্লু দিয়ে দেওয়া উচিত। সুতরাং একটি খারাপ ধারণা হ'ল ত্রুটির পৃষ্ঠাগুলি যেমন পাঠ্য সহ দেখানো হবে:
আপনার আইপি ঠিকানা থেকে অনেকগুলি অনুরোধ, পরে আবার চেষ্টা করুন।
ত্রুটি, ব্যবহারকারী এজেন্ট শিরোনাম উপস্থিত নেই!
পরিবর্তে, একটি বন্ধুত্বপূর্ণ ত্রুটি বার্তা দেখান যা স্ক্র্যাপারকে বলে না যে এটি কী কারণে ঘটেছে। এরকম কিছু আরও ভাল:
- দুঃখিত, কিছু ভুল হয়েছে।
helpdesk@example.com
সমস্যাটি যদি অব্যাহত থাকে তবে আপনি এর মাধ্যমে সহায়তার সাথে যোগাযোগ করতে পারেন ।
প্রকৃত ব্যবহারকারীদের জন্য এটি আরও অনেক বেশি ব্যবহারকারী বান্ধব, তাদের যদি কখনও এ জাতীয় ত্রুটি পৃষ্ঠাটি দেখা উচিত হয়। আপনার যদি সত্যিকারের ব্যবহারকারীর ত্রুটি বার্তাটি দেখে, যাতে আপনি অবরুদ্ধ না হন এবং বৈধ ব্যবহারকারীরা আপনার সাথে যোগাযোগ করতে পারে তার জন্য হার্ড ব্লকের পরিবর্তে পরবর্তী অনুরোধগুলির জন্য একটি ক্যাপচা দেখানো উচিত।
ক্যাপচা ব্যবহার করুন যদি আপনি সন্দেহ করেন যে আপনার ওয়েবসাইটটি কোনও স্ক্র্যাপ দ্বারা অ্যাক্সেস করা হচ্ছে।
ক্যাপচাগুলি ("সম্পূর্ণ কম্পিউটার ও মানুষকে আলাদা করার জন্য স্বয়ংক্রিয় পরীক্ষা") স্ক্র্যাপারগুলি থামানোর বিরুদ্ধে খুব কার্যকর। দুর্ভাগ্যক্রমে, তারা ব্যবহারকারীদের বিরক্ত করতেও খুব কার্যকর।
যেমন, যখন আপনি কোনও সম্ভাব্য স্ক্র্যাপার সন্দেহ করেন এবং স্ক্র্যাপিং বন্ধ করতে চান, তবে এটি কার্যকর হয় যদি এটি কোনও স্ক্র্যাপর নয় তবে প্রকৃত ব্যবহারকারী না হয় access আপনি যদি কোনও স্ক্র্যাপার সন্দেহ করেন তবে সামগ্রীটিতে অ্যাক্সেসের অনুমতি দেওয়ার আগে আপনি একটি ক্যাপচা দেখানো বিবেচনা করতে পারেন।
ক্যাপচা ব্যবহার করার সময় সচেতন হওয়া বিষয়গুলি:
নিজের রোল করবেন না, গুগলের রিক্যাপচা জাতীয় কিছু ব্যবহার করুন : ক্যাপচায় নিজেকে প্রয়োগ করার চেয়ে এটি অনেক সহজ, আপনি নিজের সাথে আসা কিছু অস্পষ্ট ও রশ্মিযুক্ত পাঠ্য সমাধানের চেয়ে ব্যবহারকারী-বান্ধব (ব্যবহারকারীদের কেবলমাত্র একটি বাক্স টিক লাগাতে হবে) ), এবং আপনার সাইট থেকে পরিবেশন করা কোনও সাধারণ চিত্রের চেয়ে স্ক্রিপ্টারের পক্ষে সমাধান করাও অনেক কঠিন
এইচটিএমএল মার্কআপে ক্যাপচার সমাধানটি অন্তর্ভুক্ত করবেন না: আমি আসলে এমন একটি ওয়েবসাইট দেখেছি যার পৃষ্ঠায় ক্যাপচার জন্য সমাধান ছিল , (যদিও এটি বেশ ভালভাবে লুকানো রয়েছে) সুতরাং এটি একেবারেই অকেজো করে তোলে। এরকম কিছু করবেন না। আবার, পুনঃক্যাপ্টচের মতো একটি পরিষেবা ব্যবহার করুন এবং আপনার এই ধরণের সমস্যা হবে না (যদি আপনি এটি সঠিকভাবে ব্যবহার করেন)।
ক্যাপচাগুলি বাল্কের মধ্যে সমাধান করা যেতে পারে: ক্যাপচা-সমাধানের পরিষেবাগুলি রয়েছে যেখানে প্রকৃত, স্বল্প বেতনের মানুষেরা বিপুল পরিমাণে ক্যাপচাকে সমাধান করে। আবার, পুনরায় ক্যাপচা ব্যবহার করা এখানে একটি ভাল ধারণা, কারণ তাদের সুরক্ষা রয়েছে (যেমন ক্যাপচাকে সমাধান করার জন্য ব্যবহারকারীর তুলনামূলক স্বল্প সময়ের জন্য)। আপনার ডেটা সত্যই মূল্যবান না হলে এই ধরণের পরিষেবা ব্যবহারের সম্ভাবনা নেই।
আপনার পাঠ্য সামগ্রীটি একটি চিত্র হিসাবে পরিবেশন করুন
আপনি একটি চিত্র সার্ভারের পাশের অংশে পাঠ্য রেন্ডার করতে পারেন এবং এটি প্রদর্শিত হতে পারে যা সাধারণ স্ক্র্যাপারগুলি পাঠ্য উত্তোলনের ক্ষেত্রে বাধা সৃষ্টি করবে।
তবে এটি পর্দার পাঠক, অনুসন্ধান ইঞ্জিন, পারফরম্যান্স এবং অন্য সব কিছুর পক্ষে খারাপ। এটি কিছু জায়গায় অবৈধ (অ্যাক্সেসযোগ্যতার কারণে, যেমন: প্রতিবন্ধী আইনের সাথে আমেরিকানরা), এবং কিছু ওসিআর দিয়ে ফেলাও সহজ, সুতরাং এটি করবেন না।
আপনি সিএসএস স্প্রাইটের সাথে একই রকম কিছু করতে পারেন তবে এটি একই সমস্যাতে ভুগছে।
আপনার সম্পূর্ণ ডেটাসেটটি প্রকাশ করবেন না:
যদি সম্ভব হয় তবে আপনার সমস্ত ডেটাসেট পাওয়ার জন্য কোনও স্ক্রিপ্ট / বটের কোনও উপায় সরবরাহ করবেন না। উদাহরণ হিসাবে: আপনার কাছে একটি নিউজ সাইট রয়েছে, প্রচুর স্বতন্ত্র নিবন্ধ রয়েছে। আপনি সেই নিবন্ধগুলি কেবলমাত্র সাইটে অনুসন্ধানের মাধ্যমে অনুসন্ধান করেই অ্যাক্সেসযোগ্য করে তুলতে পারবেন এবং যদি আপনার সাইটে সাইটের সমস্ত নিবন্ধ এবং তাদের ইউআরএলগুলির কোনও তালিকা না থাকে তবে articles নিবন্ধগুলি কেবল অনুসন্ধান ব্যবহার করে অ্যাক্সেসযোগ্য হবে বৈশিষ্ট্য। এর অর্থ হ'ল কোনও স্ক্রিপ্ট আপনার সাইট থেকে সমস্ত নিবন্ধ পেতে চাইছে এবং আপনার নিবন্ধগুলিতে প্রদর্শিত হতে পারে এমন সমস্ত সম্ভাব্য বাক্যাংশের অনুসন্ধান করতে হবে যা এগুলি সব সময় সাশ্রয়ী, ভয়াবহভাবে অকার্যকর এবং আশাবাদী করে তোলে খড়খড়ি ছেড়ে দেয়।
এটি অকার্যকর হবে যদি:
- বট / স্ক্রিপ্ট যেভাবেই হোক না কেন পুরো ডেটাসেটের প্রয়োজন / চায় না।
- আপনার নিবন্ধগুলি এমন একটি URL থেকে পরিবেশন করা হয়েছে যা দেখতে কিছুটা ভাল লাগে
example.com/article.php?articleId=12345
। এটি (এবং অনুরূপ জিনিস) যা স্ক্র্যাপারকে কেবলমাত্র সমস্ত এসকে পুনরাবৃত্তি করতে articleId
এবং সমস্ত নিবন্ধকে সেইভাবে অনুরোধ করবে।
- অবশেষে সমস্ত নিবন্ধ সন্ধান করার অন্যান্য উপায় রয়েছে যেমন নিবন্ধগুলির মধ্যে লিঙ্কগুলি অনুসরণ করার জন্য একটি স্ক্রিপ্ট লিখে অন্য নিবন্ধগুলির দিকে পরিচালিত করে।
- "এবং" বা "" "এর মতো কোনও কিছুর সন্ধান করা প্রায় সমস্ত কিছুই প্রকাশ করতে পারে, তাই এটি সচেতন হওয়ার মতো বিষয়। (আপনি কেবলমাত্র শীর্ষ 10 বা 20 টি ফলাফল ফিরিয়ে এড়াতে পারবেন)।
- আপনার সামগ্রীটি খুঁজতে আপনার অনুসন্ধান ইঞ্জিনগুলির প্রয়োজন need
আপনার এপিআই, শেষ পয়েন্ট এবং অনুরূপ জিনিসগুলি প্রকাশ করবেন না:
নিশ্চিত হয়ে নিন যে আপনি কোনও এআইপি, এমনকি অনিচ্ছাকৃতভাবেই প্রকাশ করেন না। উদাহরণস্বরূপ, আপনি যদি নিজের ডেটা লোড করতে অ্যাডোব ফ্ল্যাশ বা জাভা অ্যাপলেটগুলির (forbশ্বর নিষেধ করুন!) এর মধ্যে থেকে এজেএক্স বা নেটওয়ার্ক অনুরোধগুলি ব্যবহার করছেন তবে পৃষ্ঠা থেকে নেটওয়ার্কের অনুরোধগুলি দেখার জন্য এবং সেই অনুরোধগুলি কোথায় যাচ্ছে তা নির্ধারণ করা ক্ষুদ্রতর এবং তারপরে ইঞ্জিনিয়ারটিকে বিপরীত করুন এবং স্ক্র্যাপ প্রোগ্রামে end শেষের পয়েন্টগুলি ব্যবহার করুন। নিশ্চিত হয়ে নিন যে আপনি নিজের শেষবিন্দুগুলি অবলম্বন করেছেন এবং বর্ণিত হিসাবে এটি অন্যদের ব্যবহারের জন্য কঠোর করে তুলছেন।
এইচটিএমএল পার্সার এবং স্ক্র্যাপারগুলি নিরস্ত করতে:
যেহেতু এইচটিএমএল পার্সারগুলি এইচটিএমএলে সনাক্তকরণযোগ্য নিদর্শনগুলির উপর ভিত্তি করে পৃষ্ঠা থেকে সামগ্রী বের করে কাজ করে, আমরা ইচ্ছাকৃতভাবে এই প্যাঁচগুলি ভাঙার জন্য এই প্যাটার্নগুলিকে ইচ্ছাকৃতভাবে পরিবর্তন করতে পারি, বা এমনকি তাদের সাথে স্ক্রুও করতে পারি। এই টিপসের বেশিরভাগগুলি অন্যান্য স্ক্র্যাপারগুলির মতো মাকড়সা এবং স্ক্রীনস্ক্রেপারগুলিতেও প্রয়োগ হয়।
আপনার এইচটিএমএল প্রায়শই পরিবর্তন করুন
এইচটিএমএল প্রক্রিয়াকরণকারী স্ক্র্যাপারগুলি আপনার HTML পৃষ্ঠার নির্দিষ্ট, সনাক্তকরণযোগ্য অংশগুলি থেকে সামগ্রীগুলি বের করে সরাসরি এটি করে। উদাহরণস্বরূপ: আপনার ওয়েবসাইটে সকল পৃষ্ঠা একটি থাকে তাহলে div
একজন আইডি সহ article-content
, যা প্রবন্ধের পাঠ্য ধারণ, তাহলে এটি তুচ্ছ আপনার সাইটে সব নিবন্ধ পৃষ্ঠাগুলি দেখার একটি স্ক্রিপ্ট লিখতে এবং বিষয়বস্তু পাঠ্য নিষ্কাশন হয় article-content
DIV আছে প্রতিটি নিবন্ধের পৃষ্ঠায় এবং ভয়েলে, স্ক্র্যাপারের কাছে আপনার সাইটের সমস্ত নিবন্ধ এমন বিন্যাসে রয়েছে যা অন্য কোথাও পুনরায় ব্যবহার করা যেতে পারে।
আপনি যদি ঘন ঘন আপনার পৃষ্ঠাগুলির এইচটিএমএল এবং কাঠামো পরিবর্তন করেন তবে এই জাতীয় স্ক্র্যাপারগুলি আর কাজ করবে না।
আপনি প্রায়শই আপনার HTML এ আইডি এবং উপাদানগুলির ক্লাস পরিবর্তন করতে পারেন, এমনকি স্বয়ংক্রিয়ভাবেও। সুতরাং, যদি আপনার div.article-content
মতো কিছু হয়ে যায় div.a4c36dda13eaf0
এবং প্রতি সপ্তাহে পরিবর্তিত হয় তবে স্ক্র্যাপারটি প্রাথমিকভাবে ঠিকঠাক কাজ করবে তবে এক সপ্তাহের পরে ভেঙে যাবে। আপনার আইডি / ক্লাসের দৈর্ঘ্যটিও পরিবর্তন করার বিষয়টি নিশ্চিত করুন, অন্যথায় স্ক্র্যাপার div.[any-14-characters]
পরিবর্তে পছন্দসই ডিভিটি অনুসন্ধান করতে ব্যবহার করবে । অন্যান্য অনুরূপ গর্ত থেকেও সাবধান থাকুন ..
যদি মার্কআপ থেকে কাঙ্ক্ষিত সামগ্রীটি খুঁজে পাওয়ার কোনও উপায় না থাকে তবে স্ক্র্যাপার এইচটিএমএল স্ট্রাকচারের উপায় থেকে এটি করবে। সুতরাং, যদি সব আপনার নিবন্ধ পৃষ্ঠাগুলি যে অনুরূপ div
ভিতরে div
যা আসে পরে h1
নিবন্ধ বিষয়বস্তু, স্ক্র্যাপার নিবন্ধ উপর ভিত্তি বিষয়বস্তু পাবেন। আবার এটিকে ভেঙে ফেলার জন্য, আপনি আপনার এইচটিএমএলগুলিতে অতিরিক্ত সময়সূচক এবং এলোমেলোভাবে অতিরিক্ত মার্কআপ যুক্ত / সরিয়ে ফেলতে পারেন, যেমন। অতিরিক্ত div
এস বা span
গুলি যোগ করা । আধুনিক সার্ভার সাইড এইচটিএমএল প্রসেসিং সহ, এটি খুব বেশি শক্ত হওয়া উচিত নয়।
সচেতন হওয়ার মতো বিষয়গুলি:
এটি বাস্তবায়ন, রক্ষণাবেক্ষণ এবং ডিবাগ করা ক্লান্তিকর এবং কঠিন হবে।
আপনি ক্যাশে বাধা দেবে। বিশেষত আপনি যদি আপনার এইচডিএমএল উপাদানগুলির আইডিস বা ক্লাসগুলি পরিবর্তন করেন তবে এর জন্য আপনার সিএসএস এবং জাভাস্ক্রিপ্ট ফাইলগুলিতে অনুরূপ পরিবর্তনগুলির প্রয়োজন হবে, যার অর্থ প্রতিবার আপনি এগুলি পরিবর্তন করুন, সেগুলি ব্রাউজারের মাধ্যমে পুনরায় ডাউনলোড করতে হবে। এর ফলে পুনরাবৃত্তি দর্শকদের জন্য দীর্ঘ পৃষ্ঠা লোড সময়, এবং সার্ভার লোড বৃদ্ধি পাবে। আপনি যদি সপ্তাহে একবার এটি পরিবর্তন করেন তবে এটি কোনও বড় সমস্যা হবে না।
চতুর স্ক্র্যাপাররা প্রকৃত সামগ্রী যেখানে যেমন অনুমান করে এখনও আপনার সামগ্রী পেতে সক্ষম হবে। এই পৃষ্ঠায় পাঠ্যের একটি বৃহত একক ব্লক সম্ভবত আসল নিবন্ধ হতে পারে তা জেনে। এটি পৃষ্ঠা থেকে পছন্দসই ডেটা এখনও সন্ধান এবং আহরণ করা সম্ভব করে। বয়লারপাইপ ঠিক এটি করে।
মূলত, নিশ্চিত হয়ে নিন যে স্ক্রিপ্টের জন্য প্রতিটি অনুরূপ পৃষ্ঠার জন্য প্রকৃত, পছন্দসই সামগ্রী খুঁজে পাওয়া সহজ নয়।
এটি কীভাবে পিএইচপি-তে কার্যকর করা যেতে পারে তার বিশদ জানতে এক্সপ্যাথের উপর নির্ভর করে ক্রলারদের কীভাবে পৃষ্ঠা বিষয়বস্তু পেতে রোধ করবেন তা দেখুন ।
ব্যবহারকারীর অবস্থানের ভিত্তিতে আপনার এইচটিএমএল পরিবর্তন করুন
এটি পূর্ববর্তী টিপের মতো ধরণের। যদি আপনি আপনার ব্যবহারকারীর অবস্থান / দেশের উপর ভিত্তি করে বিভিন্ন এইচটিএমএল পরিবেশন করেন (আইপি ঠিকানা দ্বারা নির্ধারিত), এটি স্ক্র্যাপারগুলিকে ভেঙে দিতে পারে যা ব্যবহারকারীদের কাছে সরবরাহ করা হয়। উদাহরণস্বরূপ, যদি কেউ এমন কোনও মোবাইল অ্যাপ লিখছেন যা আপনার সাইট থেকে ডেটা স্ক্র্যাপ করে তবে এটি প্রথমে ঠিকঠাক কাজ করবে, তবে এটি প্রকৃতপক্ষে ব্যবহারকারীদের মধ্যে বিতরণ করা হবে, কারণ সেই ব্যবহারকারীরা অন্য দেশে থাকতে পারে, এবং এইভাবে আলাদা এইচটিএমএল পাবেন যা এম্বেড থাকা স্ক্র্যাপ ব্যবহারের জন্য ডিজাইন করা হয়নি।
আপনার এইচটিএমএল ঘন ঘন পরিবর্তন করুন, সক্রিয়ভাবে স্ক্র্যাপারগুলির সাথে স্ক্রু করে এটি করে!
একটি উদাহরণ: আপনার ওয়েবসাইটে থাকা একটি অনুসন্ধান বৈশিষ্ট্য রয়েছে example.com/search?query=somesearchquery
যা এখানে নিম্নলিখিত এইচটিএমএল ফিরিয়ে দেয়:
<div class="search-result">
<h3 class="search-result-title">Stack Overflow has become the world's most popular programming Q & A website</h3>
<p class="search-result-excerpt">The website Stack Overflow has now become the most popular programming Q & A website, with 10 million questions and many users, which...</p>
<a class"search-result-link" href="/stories/story-link">Read more</a>
</div>
(And so on, lots more identically structured divs with search results)
আপনি যেমন অনুমান করতে পারেন এটি স্ক্র্যাপ করা সহজ: সমস্ত স্ক্র্যাপারকে একটি অনুসন্ধানের সাথে অনুসন্ধানের URL টি চাপতে হবে এবং প্রত্যাবর্তিত এইচটিএমএল থেকে পছন্দসই ডেটা বের করতে হবে। উপরে বর্ণিত হিসাবে পর্যায়ক্রমে এইচটিএমএল পরিবর্তনের পাশাপাশি, আপনি পুরানো আইডিস এবং ক্লাসগুলিতে পুরানো মার্কআপটি ছেড়ে দিতে পারেন , এটি সিএসএস সহ লুকিয়ে রাখতে পারেন এবং এটি জাল ডেটা দিয়ে পূরণ করতে পারেন, যার ফলে স্ক্র্যাপটিকে বিষাক্ত করা হয়। অনুসন্ধান ফলাফলের পৃষ্ঠাটি কীভাবে পরিবর্তন করা যেতে পারে তা এখানে:
<div class="the-real-search-result">
<h3 class="the-real-search-result-title">Stack Overflow has become the world's most popular programming Q & A website</h3>
<p class="the-real-search-result-excerpt">The website Stack Overflow has now become the most popular programming Q & A website, with 10 million questions and many users, which...</p>
<a class"the-real-search-result-link" href="/stories/story-link">Read more</a>
</div>
<div class="search-result" style="display:none">
<h3 class="search-result-title">Visit Example.com now, for all the latest Stack Overflow related news !</h3>
<p class="search-result-excerpt">Example.com is so awesome, visit now !</p>
<a class"search-result-link" href="http://example.com/">Visit Now !</a>
</div>
(More real search results follow)
এর অর্থ এই হবে যে ক্লাস বা আইডির উপর ভিত্তি করে এইচটিএমএল থেকে ডেটা আহরণের জন্য লিখিত স্ক্র্যাপারগুলি আপাতদৃষ্টিতে কাজ করা চালিয়ে যাবে, তবে তারা জাল তথ্য বা এমনকী বিজ্ঞাপন, ডেটা পাবেন যা বাস্তব ব্যবহারকারীরা কখনই দেখতে পাবেন না, কারণ তারা সিএসএসের সাথে লুকিয়ে রয়েছে।
স্ক্র্যাপারের সাথে স্ক্রু: আপনার পৃষ্ঠায় জাল, অদৃশ্য হানিপোট ডেটা .োকান
পূর্ববর্তী উদাহরণে যুক্ত করে, আপনি স্ক্র্যাপারগুলি ধরতে আপনার HTML এ অদৃশ্য হানিপোট আইটেমগুলি যুক্ত করতে পারেন। পূর্বে বর্ণিত অনুসন্ধানের ফলাফলের পৃষ্ঠায় যুক্ত করা যেতে পারে এমন একটি উদাহরণ:
<div class="search-result" style="display:none">
<h3 class="search-result-title">This search result is here to prevent scraping</h3>
<p class="search-result-excerpt">If you're a human and see this, please ignore it. If you're a scraper, please click the link below :-)
Note that clicking the link below will block access to this site for 24 hours.</p>
<a class"search-result-link" href="/scrapertrap/scrapertrap.php">I'm a scraper !</a>
</div>
(The actual, real, search results follow.)
সমস্ত অনুসন্ধানের ফলাফল পেতে লিখিত স্ক্র্যাপারটি পৃষ্ঠাতে থাকা অন্য যে কোনও আসল অনুসন্ধানের ফলাফলের মতো এটি বেছে নেবে এবং পছন্দসই সামগ্রী অনুসন্ধান করে লিঙ্কটি ভিজিট করবে। একজন সত্যিকারের মানুষ কখনও এটিকে প্রথম স্থানে দেখতে পাবে না (এটি সিএসএসের সাথে লুকিয়ে থাকার কারণে), এবং লিঙ্কটি দেখতে পাবে না। গুগলের মতো একটি আসল এবং কাঙ্ক্ষিত মাকড়সা লিংকটি দেখতে পাবে না কারণ আপনি নিজের রোবট.এসটিএস্টে অস্বীকার /scrapertrap/
করেছেন।
আপনি scrapertrap.php
যে আইপি ঠিকানাটি দেখেছেন তার জন্য ব্লক অ্যাক্সেসের মতো কিছু করতে বা সেই আইপি থেকে পরবর্তী সমস্ত অনুরোধের জন্য একটি ক্যাপচা জোর করতে পারে।
/scrapertrap/
আপনার রোবট.টিএসটিএক্স ফাইলটিতে আপনার হানিপোট ( ) অস্বীকার করতে ভুলবেন না যাতে অনুসন্ধান ইঞ্জিনের বটগুলি এতে না পড়ে।
আপনার এইচটিএমএল ঘন ঘন পরিবর্তন করার আগের টিপটির সাথে আপনি এটি একত্র করতে পারেন / উচিত।
এটি প্রায়শই পরিবর্তন করুন, কারণ স্ক্র্যাপাররা শেষ পর্যন্ত এড়াতে শিখবে। হানিপোট URL এবং পাঠ্য পরিবর্তন করুন। আড়াল করার জন্য ব্যবহৃত ইনলাইন সিএসএস পরিবর্তন করার বিষয়টিও বিবেচনা করতে চান এবং পরিবর্তে একটি আইডি বৈশিষ্ট্য এবং বাহ্যিক সিএসএস ব্যবহার করুন, কারণ স্ক্র্যাপাররা style
বিষয়বস্তু আড়াল করতে ব্যবহৃত সিএসএসের সাথে কোনও বৈশিষ্ট্য রয়েছে এমন কিছু এড়াতে শিখবে । এছাড়াও কখনও কখনও কেবল এটি সক্ষম করার চেষ্টা করুন, যাতে স্ক্র্যাপারটি প্রাথমিকভাবে কাজ করে তবে কিছুক্ষণ পরে বিরতি হয়। এটি পূর্ববর্তী টিপের ক্ষেত্রেও প্রযোজ্য।
ক্ষতিকারক ব্যক্তিরা আপনার হানিপোটের একটি লিঙ্ক ভাগ করে বা এমনকি কোনও লিঙ্কটি কোনও চিত্র হিসাবে এম্বেড করে (উদাহরণস্বরূপ ফোরামে) প্রকৃত ব্যবহারকারীদের অ্যাক্সেসকে আটকাতে পারে। ইউআরএল ঘন ঘন পরিবর্তন করুন এবং কোনও নিষেধাজ্ঞার সময়কে তুলনামূলকভাবে ছোট করুন।
যদি আপনি কোনও স্ক্র্যাপ সনাক্ত করে তবে জাল এবং অকেজো ডেটা পরিবেশন করুন
আপনি যদি স্পষ্টতই স্ক্র্যাপারটি সনাক্ত করেন তবে আপনি জাল এবং অকেজো ডেটা পরিবেশন করতে পারেন; এটি আপনার ওয়েবসাইট থেকে স্ক্র্যাপার প্রাপ্ত ডেটাটিকে দূষিত করবে। এ জাতীয় জাল তথ্যকে সত্যিকারের ডেটা থেকে আলাদা করাও আপনার অসম্ভব করে দেওয়া উচিত, যাতে স্ক্র্যাপাররা যাতে জানতে না পারে যে সেগুলি স্ক্রু করা হচ্ছে।
উদাহরণ হিসাবে: আপনার একটি নিউজ ওয়েবসাইট রয়েছে; আপনি যদি অ্যাক্সেস অবরুদ্ধ করার পরিবর্তে কোনও স্ক্র্যাপ সনাক্ত করেন, জাল, এলোমেলোভাবে উত্পাদিত নিবন্ধগুলি পরিবেশন করুন এবং এটি স্ক্র্যাপার প্রাপ্ত ডেটাগুলিকে বিষাক্ত করবে। যদি আপনি আপনার নকল তথ্যকে আসল জিনিস থেকে পৃথক করে তুলতে পারেন তবে স্ক্র্যাপারদের তাদের পছন্দসই, যেমন আসল, আসল ডেটা পাওয়া শক্ত হবে।
ব্যবহারকারী এজেন্ট খালি / নিখোঁজ থাকলে অনুরোধগুলি গ্রহণ করবেন না
প্রায়শই, অলসভাবে লিখিত স্ক্র্যাপাররা তাদের অনুরোধের সাথে কোনও ব্যবহারকারী এজেন্ট শিরোনাম প্রেরণ করবে না, যেখানে সমস্ত ব্রাউজার পাশাপাশি সার্চ ইঞ্জিন মাকড়সা করবে।
আপনি যদি এমন কোনও অনুরোধ পেয়ে থাকেন যেখানে ব্যবহারকারী এজেন্ট শিরোনাম উপস্থিত নেই, আপনি একটি ক্যাপচা প্রদর্শন করতে পারেন, বা কেবল অবরুদ্ধ বা অ্যাক্সেস সীমাবদ্ধ করতে পারেন। (বা উপরে বর্ণিত হিসাবে জাল তথ্য পরিবেশন করুন, বা অন্য কিছু ..)
এটি ছদ্মবেশী হওয়া তুচ্ছ, তবে খারাপভাবে লিখিত স্ক্র্যাপার বিরুদ্ধে ব্যবস্থা হিসাবে এটি কার্যকর করা উপযুক্ত।
ব্যবহারকারী এজেন্ট যদি সাধারণ স্ক্র্যাপার হয় তবে অনুরোধগুলি গ্রহণ করবেন না; স্ক্র্যাপারদের দ্বারা ব্যবহৃত কালো তালিকাভুক্ত
কিছু ক্ষেত্রে স্ক্র্যাপাররা এমন একটি ব্যবহারকারী এজেন্ট ব্যবহার করবে যা কোনও আসল ব্রাউজার বা সার্চ ইঞ্জিন স্পাইডার ব্যবহার করে না যেমন:
- "মজিলা" (ঠিক এটি, আর কিছুই নয় I've এটি ব্যবহার করে আমি এখানে স্ক্র্যাপিং সম্পর্কে কয়েকটি প্রশ্ন দেখেছি A সত্যিকারের ব্রাউজার কেবল কখনও এটি ব্যবহার করবে না)
- "জাভা 1.7.43_u43" (ডিফল্টরূপে জাভার এইচটিপিআরএল সংযোগটি এরকম কিছু ব্যবহার করে))
- "বিজকো ইজিস্ক্র্যাপিং স্টুডিও ২.০"
- "উইজেট", "কার্ল", "লিবক্রেল", .. (উইজেট এবং সিআরএল কখনও কখনও বেসিক স্ক্র্যাপিংয়ের জন্য ব্যবহৃত হয়)
যদি আপনি দেখতে পান যে কোনও নির্দিষ্ট ব্যবহারকারী এজেন্ট স্ট্রিং আপনার সাইটে স্ক্র্যাপার দ্বারা ব্যবহৃত হয়, এবং এটি সত্যিকারের ব্রাউজারগুলি বা বৈধ মাকড়সা দ্বারা ব্যবহৃত হয় না, আপনি এটি আপনার কালো তালিকায় যুক্ত করতে পারেন।
যদি এটি সম্পদের (সিএসএস, চিত্রগুলি) অনুরোধ না করে তবে এটি সত্যিকারের ব্রাউজার নয়।
প্রকৃত ব্রাউজারটি (প্রায় সবসময়) ছবি এবং সিএসএসের মতো সম্পদের অনুরোধ এবং ডাউনলোড করবে। এইচটিএমএল পার্সার এবং স্ক্র্যাপারগুলি কেবল আসল পৃষ্ঠাগুলি এবং তাদের সামগ্রীতে আগ্রহী হবেনা।
আপনি আপনার সম্পদে অনুরোধগুলি লগ করতে পারেন এবং আপনি যদি কেবলমাত্র এইচটিএমএল-এর জন্য প্রচুর অনুরোধগুলি দেখতে পান তবে এটি একটি স্ক্র্যাপ হতে পারে।
সাবধান যে অনুসন্ধান ইঞ্জিন বটস, প্রাচীন মোবাইল ডিভাইস, স্ক্রিন রিডার এবং ভুল কনফিগার্ড ডিভাইসগুলিও সম্পদের জন্য অনুরোধ করতে পারে না।
কুকি ব্যবহার এবং প্রয়োজনীয়; ব্যবহারকারী এবং স্ক্র্যাপ ক্রিয়াগুলি ট্র্যাক করতে এগুলি ব্যবহার করুন।
আপনার ওয়েবসাইট দেখার জন্য আপনার কুকিজ সক্ষম করার প্রয়োজন হতে পারে। এটি অনভিজ্ঞ এবং নবাগত স্ক্র্যাপ লেখকদের বাধা দেবে, তবে কোনও স্ক্র্যাপারের পক্ষে কুকিজ প্রেরণ করা সহজ। যদি আপনি সেগুলি ব্যবহার করেন এবং প্রয়োজনীয় করেন, আপনি তাদের সাথে ব্যবহারকারীর এবং স্ক্র্যাপ ক্রিয়াগুলি ট্র্যাক করতে পারেন এবং এইভাবে হার-সীমাবদ্ধকরণ, অবরুদ্ধকরণ বা প্রতি-আইপি ভিত্তিতে প্রতি ব্যবহারকারীর উপর ক্যাপচা প্রদর্শন করতে পারেন।
উদাহরণস্বরূপ: যখন ব্যবহারকারী অনুসন্ধান সম্পাদন করে, একটি অনন্য সনাক্তকারী কুকি সেট করুন। ফলাফলের পৃষ্ঠাগুলি যখন দেখা হয়, সেই কুকিটি যাচাই করুন। যদি ব্যবহারকারী সমস্ত অনুসন্ধান ফলাফল খোলে (আপনি কুকি থেকে বলতে পারেন), তবে সম্ভবত এটি কোনও স্ক্র্যাপ।
কুকিগুলির ব্যবহার অকার্যকর হতে পারে, কারণ স্ক্র্যাপাররা তাদের অনুরোধের সাথে কুকিগুলি প্রেরণ করতে পারে এবং প্রয়োজনীয় হিসাবে এগুলি ত্যাগ করতে পারে। আপনি যদি সত্যিকারের ব্যবহারকারীদের কুকিজ অক্ষম করে থাকেন তাদের অ্যাক্সেসও রোধ করতে পারেন, যদি আপনার সাইটটি কেবল কুকিজের সাথে কাজ করে।
মনে রাখবেন যে আপনি যদি কুকি সেট এবং পুনরুদ্ধার করতে জাভাস্ক্রিপ্ট ব্যবহার করেন তবে আপনি জাভাস্ক্রিপ্ট চালাবেন না এমন স্ক্র্যাপারদের ব্লক করবেন, যেহেতু তারা তাদের অনুরোধের সাথে কুকি উদ্ধার করতে এবং প্রেরণ করতে পারবেন না।
আপনার সামগ্রী লোড করতে জাভাস্ক্রিপ্ট + অ্যাজাক্স ব্যবহার করুন
পৃষ্ঠাটি নিজে লোড হওয়ার পরে আপনি আপনার সামগ্রী লোড করার জন্য জাভাস্ক্রিপ্ট + এজেএক্স ব্যবহার করতে পারেন। এটি জাভাস্ক্রিপ্ট চালায় না এমন এইচটিএমএল পার্সারের পক্ষে সামগ্রীটিকে অ্যাক্সেসযোগ্য করে তুলবে। এটি প্রায়শই নবাগত এবং অনভিজ্ঞ প্রোগ্রামারদের স্ক্র্যাপ লেখার পক্ষে কার্যকর প্রতিরোধক।
সতর্ক হোন:
আসল সামগ্রীটি লোড করতে জাভাস্ক্রিপ্ট ব্যবহার করা ব্যবহারকারীর অভিজ্ঞতা এবং কর্মক্ষমতা হ্রাস পাবে
অনুসন্ধান ইঞ্জিনগুলি জাভাস্ক্রিপ্ট না চালাতে পারে, সুতরাং এগুলি আপনার সামগ্রীকে সূচিকরণ থেকে বিরত রাখে। এটি অনুসন্ধানের ফলাফলের পৃষ্ঠাগুলির জন্য সমস্যা নাও হতে পারে, তবে নিবন্ধের পৃষ্ঠাগুলির মতো অন্য জিনিসগুলির জন্যও এটি হতে পারে।
আপনার মার্কআপ, স্ক্রিপ্ট থেকে নেটওয়ার্কের অনুরোধগুলি এবং অন্যান্য কিছুর উদ্রেক করুন।
আপনি যদি নিজের ডেটা লোড করতে এজাক্স এবং জাভাস্ক্রিপ্ট ব্যবহার করেন তবে স্থানান্তরিত ডেটাটিকে অবিচ্ছিন্ন করুন। উদাহরণস্বরূপ, আপনি সার্ভারে আপনার ডেটা এনকোড করতে পারেন (বেস 64 বা আরও জটিল হিসাবে সাধারণ কিছু দিয়ে), এবং তারপরে ডিকোড করে ক্লায়েন্টে প্রদর্শন করতে পারেন, অ্যাজাক্সের মাধ্যমে আনার পরে। এর অর্থ হ'ল নেটওয়ার্ক ট্র্যাফিকের পরিদর্শন করা কোনও ব্যক্তি তাত্ক্ষণিকভাবে আপনার পৃষ্ঠাগুলি কীভাবে কাজ করে এবং ডেটা লোড করে তা দেখতে পাবেন না এবং আপনার শেষ পয়েন্টগুলি থেকে প্রত্যেকে সরাসরি অনুরোধের ডেটা অনুরোধ করা আরও কঠিন হবে কারণ তাদের আপনার ডেসক্র্যাম্বলিং অ্যালগরিদমকে রিভার্স-ইঞ্জিনিয়ারিং করতে হবে।
আপনি যদি ডেটা লোড করার জন্য অ্যাজাক্স ব্যবহার করেন তবে প্রথমে পৃষ্ঠাটি লোড না করে শেষ পয়েন্টগুলি ব্যবহার করা আপনার পক্ষে শক্ত করা উচিত, উদাহরণস্বরূপ প্যারামিটার হিসাবে কিছু সেশন কী প্রয়োজন, যা আপনি নিজের জাভাস্ক্রিপ্ট বা আপনার এইচটিএমএলে এম্বেড করতে পারেন।
আপনি আপনার অপ্রকাশিত ডেটা সরাসরি প্রাথমিক এইচটিএমএল পৃষ্ঠায় এম্বেড করতে পারেন এবং এটি ডিওবাফাসকেট করতে এবং প্রদর্শন করতে জাভাস্ক্রিপ্ট ব্যবহার করতে পারেন যা অতিরিক্ত নেটওয়ার্কের অনুরোধগুলি এড়াতে পারে। এটি করার ফলে এটি কেবলমাত্র এইচটিএমএল-কেবল পার্সার ব্যবহার করে ডেটা বের করা শক্ত হয়ে যাবে যা জাভাস্ক্রিপ্ট চালায় না, কারণ স্ক্র্যাপারটি লেখার জন্য আপনার জাভাস্ক্রিপ্টকে রিভার্সিং করতে হবে (যা আপনারও উচিত নয়)।
আপনি নিজের অবলম্বন পদ্ধতিগুলি নিয়মিত পরিবর্তন করতে এবং স্ক্র্যাপারগুলিকে ভেঙে ফেলতে চাইতে পারেন যারা এটি আবিষ্কার করেছেন।
এরকম কিছু করার বিভিন্ন অসুবিধা রয়েছে, যদিও:
এটি বাস্তবায়ন, রক্ষণাবেক্ষণ এবং ডিবাগ করা ক্লান্তিকর এবং কঠিন হবে।
এটি স্ক্র্যাপার এবং স্ক্রীনস্ক্রেপারগুলির বিরুদ্ধে অকার্যকর হবে যা আসলে জাভাস্ক্রিপ্ট চালায় এবং তারপরে ডেটা বের করে ract (সর্বাধিক সাধারণ এইচটিএমএল পার্সাররা জাভাস্ক্রিপ্ট চালায় না)
এটি যদি আপনার জাভাস্ক্রিপ্ট অক্ষম করে থাকে তবে প্রকৃত ব্যবহারকারীদের জন্য এটি আপনার সাইটটিকে অকার্যকর করে তুলবে।
পারফরম্যান্স এবং পৃষ্ঠা-লোড সময়গুলি ভোগ করবে।
অ কারিগরী:
লোককে স্ক্র্যাপ না করতে বলুন এবং কেউ কেউ এটি সম্মান করবে
একজন আইনজীবী সন্ধান করুন
আপনার ডেটা উপলভ্য করুন, একটি এপিআই সরবরাহ করুন:
আপনি আপনার ডেটা সহজেই উপলভ্য করতে পারেন এবং এট্রিবিউশন এবং আপনার সাইটে ফিরে একটি লিঙ্কের প্রয়োজন। সম্ভবত এটির জন্য চার্জ করুন।
বিবিধ:
এছাড়াও বাণিজ্যিক স্ক্র্যাপিং সুরক্ষা পরিষেবাদি রয়েছে যেমন ক্লাউডফ্লেয়ার বা ডিস্টিল নেটওয়ার্কগুলি (এটি এখানে কীভাবে কাজ করে তার বিশদ ) যেমন এগুলি করে এবং আরও আপনার জন্য এন্টি স্ক্র্যাপিং ।
প্রকৃত ব্যবহারকারীদের জন্য ব্যবহারযোগ্যতা এবং স্ক্র্যাপ-প্রুফেন্সের মধ্যে একটি ভারসাম্য সন্ধান করুন: আপনি যা কিছু করেন তা ব্যবহারকারীর অভিজ্ঞতাকে একরকম বা অন্যভাবে নেতিবাচকভাবে প্রভাবিত করবে, আপসগুলি সন্ধান করবে।
আপনার মোবাইল সাইট এবং অ্যাপ্লিকেশনগুলি ভুলে যাবেন না। আপনার যদি একটি মোবাইল অ্যাপ থাকে তবে এটি স্ক্রিনস্ক্র্যাপও করা যেতে পারে এবং এটি ব্যবহার করে থাকা আরআরটি শেষ পয়েন্টগুলি নির্ধারণ করতে নেটওয়ার্ক ট্র্যাফিক পরিদর্শন করা যেতে পারে।
স্ক্র্যাপারগুলি অন্যান্য স্ক্র্যাপারগুলিকে স্ক্র্যাপ করতে পারে: যদি এমন কোনও ওয়েবসাইট থাকে যা আপনার কাছ থেকে সামগ্রী স্ক্র্যাপ করে থাকে তবে অন্যান্য স্ক্র্যাপাররা সেই স্ক্র্যাপারের ওয়েবসাইট থেকে স্ক্র্যাপ করতে পারে।
আরও পড়া: