30 মিনিটে কীভাবে একটি সহজ অনুসন্ধান বট তৈরি করা যায়

অ্যাপার্টমেন্টের শিকার বিশেষভাবে মন্ট্রিয়ালে সফল হয়। এই গাইড আপনাকে কীভাবে এমন একটি বট তৈরি করবেন যা আপনার জন্য অনুসন্ধানে থাকবে on এইভাবে, আপনাকে আর কখনও কখনও আপনার অনুসন্ধানগুলি সীমাহীনভাবে রিফ্রেশ করতে হবে না।

প্রসঙ্গ

অন্যান্য শহরগুলির মতো নয়, মন্ট্রিলে অ্যাপার্টমেন্ট ভাড়া করা বেশিরভাগ লোকের ভাড়া দৈর্ঘ্য একই have গত 12 মাস জুলাইয়ে নতুন ইজারা শুরু হয় এবং 30 শে জুনে শেষ হবে। এটি যুক্তিযুক্ত হতে পারে যে এটি প্রচুর পরিমাণে সহজলভ্য করে - যেমন প্রাপ্যতা এবং প্রত্যাশা - তবে প্রতিযোগিতাটি মারাত্মক।

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

আমার পরবর্তী পদক্ষেপটি ছিল পূর্ববর্তীটি আপ করা এবং আসলে ফোনটি তোলা। কলগুলি আমার সম্ভাবনাগুলিকে কিছুটা উন্নত করেছে। বাড়িওয়ালা সাড়া দেওয়ার জন্য দ্রুত ছিল এবং এই সময় আমার সামনে সাধারণত 10 জনেরও কম লোক ছিল। তবে স্পষ্টতই 5 এরও বেশি ড্রয়িং বোর্ডে ফিরে আসুন।

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

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

দ্রষ্টব্য: যারা এই টিউটোরিয়ালে আগ্রহী নন, আমি কিজিজি স্ক্র্যাপকে ওপেন সোর্স রেপো হিসাবে এখানে প্রকাশ করেছি:

বিল্ডিং প্যাড প্যাট্রোল

আমি যখন কাজ থেকে বাড়ি এলাম, আমি আমার ল্যাপটপটি বের করে আমার টার্মিনালটি চালু করেছিলাম। আমি জানতাম প্রোগ্রামটি সহজ হওয়া উচিত কারণ আমি এটি প্রায় ২৪ ঘন্টা চালিয়ে যাব - বা কমপক্ষে কোনও অ্যাপার্টমেন্ট না পাওয়া পর্যন্ত। আমি একটি সাধারণ নোড স্ক্রিপ্ট তৈরি করার সিদ্ধান্ত নিয়েছি যা আমি আমার টার্মিনাল থেকে চালাতে পারি।

কনফিগারেশন

ধরুন আপনার নোড এবং এনপিএম ইনস্টল রয়েছে, কোনও নোড প্রকল্পের প্রথম পদক্ষেপটি এনপিএমকে প্রকল্প ডিরেক্টরিতে সূচনা করে।

এর পরে, আমরা আমাদের কোডটি সঞ্চয় করতে একটি এসসিআর ডিরেক্টরি তৈরি করব।

এই ডিরেক্টরিতে একটি index.js ফাইল তৈরি করুন যাতে আমাদের স্ক্রিপ্টটি অবস্থিত।

আপনি এটি এর মতো করতে পারেন:

pm npm init // এখানে কিছু প্রশ্ন জিজ্ঞাসা করা হচ্ছে $ mkdir src $ cd src && स्पर्श করুন index.js

লিপি লিখুন

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

আমাদের প্রথম যে কাজটি করতে হবে তা হ'ল কিজিজির কাছে একটি সফল অনুরোধ জমা দেওয়া। আমরা পর্যাপ্ত সাড়া পেয়েছি তা নিশ্চিত করার জন্য, আমরা খুব সাধারণ পোলটি করি।

এটি করার জন্য, আমাদের একটি প্রয়োজনীয় গ্রন্থাগার ইনস্টল করতে হবে:

। npm ইনস্টল অনুরোধ প্রতিশ্রুতি

তারপরে সূচক.জেএস-এ নিম্নলিখিতটি যুক্ত করুন:

এটি সংরক্ষণ করা হয়ে গেলে আমরা $ node src / index.js চালাতে পারি এবং আমাদের কনসোলে কিছু HTML মার্কআপ দেখা উচিত। এক ধাপ সম্পূর্ণ - সহজ!

যেহেতু আমরা কেবল বিষয়বস্তু পরিবর্তিত হওয়ার সময় যত্নশীল তাই আমরা উত্তরের একটি সহজ হ্যাশ তৈরি করতে পারি। এইভাবে আমরা উত্তর এবং হ্যাশগুলি তুলনা করতে পারি। আমাদের যদি আমাদের ফলাফলগুলিতে লগ করতে হয় তবে এটি কাঁচা মার্কআপের চেয়ে ঝামেলা কম।

এটি করার জন্য, আমরা চেকসাম নামে একটি হ্যাশিং সরঞ্জাম ব্যবহার করতে পারি:

Ool উলের চেকসাম যুক্ত করুন

এবং তারপর:

ঠিক আছে, কাজ করেছে! আমাদের 1500 টি HTML টি লাইনগুলি 32 টি অক্ষরে সংক্ষিপ্ত করা হয়েছিল। এখন এটি একটি পুনরায় ব্যবহারযোগ্য ফাংশনে আবদ্ধ করুন:

উপরের কোডটি পুনরুদ্ধারকৃত মানটির একটি হ্যাশ তৈরি করে। আসল এবং নতুন হ্যাশ পরবর্তী অনুরোধের সাথে তুলনা করা হয়।

যদি তারা আলাদা হয় তবে এটি সত্য হয়। এটি দুর্দান্ত কাজ করেছে ... কিছুটা দুর্দান্ত। আপনি দেখতে পাবেন, এটি প্রতিবার সত্য আসবে

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

উপরের কারণগুলির জন্য, আপনি যখনই লিখেছেন নি এমন কোনও এপিআই মোকাবেলা করবেন তখন আপনার উত্তরটি সর্বদা সাবধানতার সাথে বিবেচনা করা উচিত।

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

আমাদের জন্য, এটি নকল ক্রোম বিকাশকারী সরঞ্জামগুলির একগুচ্ছ!

এইভাবে চেরিও ব্যবহার করতে, আমাদের মার্কআপে কী সন্ধান করতে হবে তা আমাদের জানতে হবে। সুতরাং আসুন ক্রোমটি খুলুন এবং আমাদের ইউআরএলটি দেখুন।

আমরা যদি বিজ্ঞাপনগুলি পরীক্ষা করি তবে আমরা দেখতে পাচ্ছি যে সমস্ত অনুসন্ধান প্রতিক্রিয়াগুলির মধ্যে। অনুসন্ধান-আইটেম এবং। নিয়মিত-বিজ্ঞাপন ক্লাস রয়েছে। পারফেক্ট!

আমরা চেরিওর সাথে এইগুলি পছন্দ করতে পারি:

আমরা যেমন পরিকল্পনা করেছি, ঠিক তেমন সাজানো বস্তুগুলির একগুচ্ছ এটি its চেরিওর ডকুমেন্টেশন অনুসারে, কোনও উপাদানের সমস্ত বৈশিষ্ট্য অ্যাট্রিবিস নামে একটি কীতে বাসা বাঁধে। আমরা যদি ক্রোম বিকাশকারী সরঞ্জামগুলিতে ফিরে যাই, আমরা দেখতে পাব যে প্রতিটি বিজ্ঞাপনের আইডি নামে একটি অনন্য ডেটা অ্যাট্রিবিউট রয়েছে। নিম্নলিখিতটি দিয়ে আপনার চেক URL ফাংশনে কোডটি প্রতিস্থাপন করুন:

rp (siteToCheck) .থন (প্রতিক্রিয়া => {কনট $ = কো। লোড (এইচটিএমএল প্রতিক্রিয়া); অ্যাপার্টমেন্ট স্ট্রিং = "";
// এইচটিএমএল প্রতিক্রিয়াগুলি পার্স করতে এবং সমস্ত অনুসন্ধানের ফলাফলগুলি খুঁজে পেতে Search ("। অনুসন্ধান-আইটেম.ইউকুলার-বিজ্ঞাপন") চেরিও ব্যবহার করুন। প্রতিটি (i, উপাদান) => so কনসোল.লগ (এলিমেন্ট.্যাট্রিবস ["ডেটা-বিজ্ঞাপন-আইডি"]);}); });

ঠিক আছে, আমরা অনন্য আইডি নম্বরগুলির একটি তালিকা পাই। এই আইডিগুলি হ'ল তথ্য যা পৃষ্ঠায় আমাদের আগ্রহী।

সুতরাং আসুন আমরা হ্যাশগুলির তুলনা করার জন্য আমাদের মূল পরিকল্পনায় ফিরে যাই, কেবলমাত্র আমরা অনন্য আইডি হ্যাশ করি:

পারফেক্ট! এটা ঠিক হিসাবে কাজ করে। যখন কেউ কোনও নতুন বিজ্ঞাপন পোস্ট করেন (বা কোনও পুরানো বিজ্ঞাপন, আইডির ক্রম পর্যবেক্ষণের সীমাবদ্ধতা সরিয়ে দেয়), তখন আমরা আমাদের কনসোলটিতে সত্য মুদ্রণ করি। আপনাকে যা করতে হবে তা হ'ল আমাদের এসএমএস সরঞ্জাম সেট আপ করতে।

টার্মিনাল থেকে এসএমএস পাঠানো হচ্ছে

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

ঠিক আছে, শুরু করতে আমাদের চালানো দরকার:

Y সুতো টোলিও যোগ করুন

সেখান থেকে আপনি টেক্সিলিও index.js এ যুক্ত করতে এবং SMS নামক একটি নতুন ফাংশন সংজ্ঞায়িত করতে পারেন:

কনস্ট টিভিলিও = প্রয়োজনীয় (টিউলিও);
// আপনাকে এই কনস্টেন্ট ক্লায়েন্টের জন্য আপনার নিজস্ব শংসাপত্রগুলির জন্য অনুরোধ করতে হবে = নতুন ট্যালিও ("অ্যাকাউন্টআইডি", "অ্যাথকি");
ফাংশন এসএমএস ({থেকে শরীর থেকে, {) {ক্লায়েন্ট.মেসেজগুলি Create তৈরি করুন ({বডি, থেকে,} থেকে) then প্রেরিত);})। ক্যাচ (এরর => {কনসোল.লগ (ত্রুটি);}); }

এই সাধারণ ক্রিয়ায় দুটি ফোন নম্বর (এবং থেকে) এবং একটি বার্তা (পাঠ্য) ব্যবহার করা হয়। কনসোলে আমাদের চেকআরএল ফাংশনটির ফলাফলটি লগ করার পরিবর্তে আমরা যে কোনও পছন্দসই বার্তা সহ এসএমএস কল করতে পারি:

সেখানে আপনি এটি আছে! আমাদের স্ক্রিপ্টটি যতবারই সাইটের মধ্যে তাত্ক্ষণিকভাবে পরিবর্তনগুলি সনাক্ত করে তা যথাযথ url with সহ আপনার ফোনে একটি পাঠ্য বার্তা প্রেরণ করবে

শুভ শিকার!

আমার তৈরি স্ক্রিপ্টটি উপরের উদাহরণের চেয়ে কিছুটা জটিল। আমি এটি গিটহাবের ওপেন সোর্স রেপো হিসাবে প্রকাশ করেছি।

এক পর্যায়ে আমি আরও কয়েকটি সংযোজন যুক্ত করতে চাই - প্রথমটি কেবল একটি কিজিজি স্ক্র্যাপার পরিবর্তে এটি আরও সাধারণ করে তুলবে। এটি বেশ সহজ, তাই নতুন অবদানকারীদের জন্য এটি প্রথমবারের একটি দুর্দান্ত প্রকল্প হবে।

আপনি যেভাবে উপযুক্ত দেখছেন তে অবদান রাখতে নির্দ্বিধায়

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

আমি বর্তমানে মন্ট্রিলের একটি বিলাসবহুল ফ্যাশন হাউসে একটি সফটওয়্যার বিকাশকারী হিসাবে কাজ করছি। গত গ্রীষ্মে একটি ওয়েব বিকাশকারী বুটক্যাম্প শেষ করে আমি প্রায় এক বছর ধরে এটি করছি। আমি আমার ফ্রি সময় গরম নতুন প্রযুক্তিগুলি শিখতে এবং কিছু দিন আগে পর্যন্ত অ্যাপার্টমেন্টগুলির সন্ধানে ব্যয় করি।