با سلام
گاهی برخی از صفحات وب حاوی اطلاعاتی هستند که شاید بخواید اونارو جداسازی کنید و یه عملیاتی روش انجام بدید اما تولید کننده صفحه نمیخواد شما اینکارو بکنید مثلا خطوط زیر تو فایل سورس صفحه وب :
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
که در مجموع 1592 کاراکتر رو شامل میشه تو صفحه وب رندر شده توسط مروگر تنها به صورت 12 کاراکتر 221.7.11.102 مشاهده میشه.
کاربر لینوکس با اینهمه یوتیلیتی و ابزارهای متنوع دستش بازه.3 تا یوتیلیتی عمده برای استخراج و جداسازی اطلاعات وجود داره(علاوه بر تعداد بسیار دیگر) شامل grep و sed و awk
از awk استفاده زیادی میشه و فوق العاده قدرتمنده طوری که برای یادگیریش باید یه کتاب حجیم خونده بشه.ولی به نسبت grep و sed (از جهت سیسنتکس و نصب بودن تو دیستروهای متفاوت) کمتر قابل حمله.
من فقط از sed و grep برای این هدف استفاده میکنم و توسط یه bash script ساده اینکارو میکنم.کل کادر زیر رو تو یه فایل به نام list.htm ذخیره کنید :
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
صفحه رو تو مرورگر وب باز کنید تا نمای رندر شده صفحه رو ببینید.
حالا یه فایل به نام parse.sh تو همون پوشه حاوی list.htm ایجاد کنید و متن زیر رو در اون قرار بدید و ذخیرش کنید :
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
حالا شل رو باز کنید و تایپ کنید chmod +x parse.sh تا اجرایی بشه و سپس اونو اجرا کنید.یه فایل به نام result.txt ایجاد میکنه که اطلاعات استخراج شده از صفحه وب به صورت زیر در اونه :
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
حالا به راحتی میتونید عملیات موردنظر(در اینجا اعتبار سنجی ip/port) رو روی اون انجام بدید.دستورات چون فی البداه نوشته شدند شلوغند و میشه اونها رو بهینه کرد.
دستوراتی که تو اسکریپت parse.sh دیدید صرفا یه تابع درون یه اسکریپت دیگست که من برای استخراج اطلاعات و اعتبار سنجی پراکسیها از اون استفاده میکنم.
bash لینوکس (که یکی از ساده ترین مفسرهای فرمان اونه) بسیار قدرتمنده و در عین حال نسبتا ساده.