PDA

View Full Version : اجرای یک اسکریپت بر روی یک وبسایت که به کد آن دسترسی نداریم !!!



mehrdad85
شنبه 03 اسفند 1398, 18:40 عصر
سلام

ممنون میشم دوستانی که تجربه دارن یا منبعی برای مطالعه دارن معرفی کنن.
من چندتا سوال دارم در مورد زبان جاوااسکریپت که به ترتیب مینویسم و ممنونم از صبر و شکیبایی شما و زمانی که بابت پاسخ اختصاص میدید
مسئله اینه که من میخوام از طریق یه اسکریپت بتونم به یه سری از فیلدهای تکست و تکس باکس که داخل یه صفحه از سایت هستش دسترسی داشته باشم بزارید مثال بزنم مثلا یه صفحه به ادرس http://www.abc.com داریم که داخل این صفحه تکس باکس هایی تحت عنوان a,b,c,dداریم.
حالا من میخوام با یه اسکریپت بتونم مقادیر a,b,c,d را بتونم ببینم ویا مقادیر جدید داخل اونا ثبت کنم.
نکته این که من به کد این صفحه دسترسی ندارم اما صفحه محدودیتی برای خواندن این مقادیر و یا ثبت مقادیر جدید ندارن فقط من میخوام که یکی یکی و دستی این کارو انجام ندم.

این ابتدایی ترین مشکلی هست که در این رابطه دارم سوالاتی هست که هرچی توی لایبرری های مختلف نگاه کردم جوابی براش پیدا نکردم ولی خوب چون وابسته به این سوال هستن گفتم شاید مطرح کردن و کمک گرفتن از شما دوستان بتونه راه را برای بقیه مسئله باز کنه.




باز هم ممنون

plague
یک شنبه 04 اسفند 1398, 08:59 صبح
آیا منظورت مثل ربات هستش که میرن تو یک سایت و داده برمیدارن ؟
اگه منظورت همچین چیزیه اگه میخای با javascript انجام بدی میتونی از headless browser استفاده کنی مثل PhantomJS
به طور خلاصه یک مرورگر وب هست که قابلیت کد نویسی داره یعنی میتونی برا مرورگر کد بنویسی که فلان آدرس برو رو فلان چیز کلیک کن و .....
البته بهتر از فانتوم استفاده از puppeteer هستش که البته اون تو بستر Nodejs اجرا میشه و یکم یادگیریش سخت تره

mehrdad85
دوشنبه 05 اسفند 1398, 01:01 صبح
آیا منظورت مثل ربات هستش که میرن تو یک سایت و داده برمیدارن ؟
اگه منظورت همچین چیزیه اگه میخای با javascript انجام بدی میتونی از headless browser استفاده کنی مثل PhantomJS
به طور خلاصه یک مرورگر وب هست که قابلیت کد نویسی داره یعنی میتونی برا مرورگر کد بنویسی که فلان آدرس برو رو فلان چیز کلیک کن و .....
البته بهتر از فانتوم استفاده از puppeteer هستش که البته اون تو بستر Nodejs اجرا میشه و یکم یادگیریش سخت تره

سلام دوست عزیز ممنونم بابت وقت و انرژی ای که برای پاسخگویی گذاشتی مرسی بابت راهنمایی
چندتا سوال داشتم اگه ممکنه راهنمایی کنین
اول اینکه باید این کدی که با puppeteer نوشته میشه را چطور اجرا کنم ؟ طریقه اجرای اون به چه فرم هستش؟آیا باید اونو به صورت اسکریپت داخل کدهای html بنویسم و اجرا کنم؟
سوال دیگه اینکه ایا ممکنه این کار از مصادیق هک و نفوذ باشه و غیرقانونی باشه و یا وب سایت مقصد این قابلیت را بسته باشه که این نوع کد روی وبسیات قابل اجرا باشه؟
سوال دیگه اینکه وب سایت به صورت داینامیک هستش و این که چه گزینه هایی را در طول فرم من انتخاب میکنم ممکنه که اطلاعات دیگه ای بسته به انتخاب من داخل صفحه لود بشن و همراه با کلیک کردن بر روی دکمه ارسال این اطلاعات ارسال بشن در این شرایط چطوری دسترسی به عناصر html داخل صفحه داشته باشم؟نمیدونم که تونستم منظورم را برسونم یا نه اما اگه واضح نیست بفرمایید تا بیشتر توضیح بدم یا مثال بزنم.
در پاییان اگه منبع مناسبی میدونین معرفی کنین ممنون میشم.

بی نهایت سپاسگزارم

plague
دوشنبه 05 اسفند 1398, 09:46 صبح
من با منابع انگلیسی یاد گرفتم (سرچ تو گوگل - سایت رسمیش - ویدئو های یوتوب )
اگه میخای پاپتیر کار کنی قبلش باید با nodejs آشنا بشی (زیاد تو عمقش نرو همون سطح ابتدایی که چجوری کداش رو اجرا کنی فقط ) و مفاهیم پیشرفته تر javascript مثل promise و async/await رو یاد بگیری




از طریق خط فرمان اجرا میشن (همون cmd )
هک نیست چون شما همون کارایی که بازدید کننده یک سایت انجام میده رو میتونی انجام بدی قرار نیست که سورس کدشون رو تغییر بدی یا رو سرور چیزی بریزی !
وبسایت هم نمیتونه ببنده چون همونجوری که گفتم مثل بازدید کننده هستی و تشخیص نمیشه داد


سوال دیگه اینکه وب سایت به صورت داینامیک هستش و این که چه گزینه هایی را در طول فرم من انتخاب میکنم ممکنه که اطلاعات دیگه ای بسته به انتخاب من داخل صفحه لود بشن و همراه با کلیک کردن بر روی دکمه ارسال این اطلاعات ارسال بشن در این شرایط چطوری دسترسی به عناصر html داخل صفحه داشته باشم؟نمیدونم که تونستم منظورم را برسونم یا نه اما اگه واضح نیست بفرمایید تا بیشتر توضیح بدم یا مثال بزنم.

متوجه نمیشم دقیقا چه جوابی میخای و چی داری میپرسی
خب باید کد نویسیش رو یاد بگیری ببینی چجوری اینکارارو بکنی
تو پاپتیر کد نویسی اینجوریه که
1 - روی دکمه x کلیک کن
2 - صبر کن تا y توی صفحه ظاهر بشه
3 - بعد رو y کلیک کن و ....

mehrdad85
دوشنبه 05 اسفند 1398, 10:09 صبح
سلام دوست عزیز ممنونم از شما




متوجه نمیشم دقیقا چه جوابی میخای و چی داری میپرسی
خب باید کد نویسیش رو یاد بگیری ببینی چجوری اینکارارو بکنی
تو پاپتیر کد نویسی اینجوریه که
1 - روی دکمه x کلیک کن
2 - صبر کن تا y توی صفحه ظاهر بشه
3 - بعد رو y کلیک کن و ....

چیزی که منظورم هست اینه که مثلا من باید یه فرم را ارسال کنم اما تو این فرم باید یه سری گزینه ها را انتخاب کنم مثلا از طریق یه تکس باکس مقادیری را سرچ کنم و انتخاب بشن و بعدش مابقی فرم را تکمیل کنم این مقادیری که انتخاب کردم توی سوالات دیگه ای که از من پرسیده میشه و ظاهر فرم تاثیر دارن . من با اینکه بخوام این مقادیر را خودم انتخاب کنم و مابقی کار را با پاپتیر انجام بدم مشکلی ندارم اما خوب راهکاری براش پیدا نکردم چون پاپتیر تا جایی که من متوجه شدم خودد ادرس سایت را میگیره و میره کارها را انجام میده . با این که من مقادیر را انتخاب کنم هیچ تغییری هم در ادرس صفحه ایجاد نمیشه که بخوام این تغییرات را از طریق ادرسی که به پاپتیر میدم اعمال کنم.
یه سری سرچ که انجام دادم خوندم که میشه توی کنسول فایرفاکس یا کروم هم کد نوشت و اجرا کرد اینطوری دیگه میشه بخشی از کار را از طریق اسکریپت جلو برد ولی برای پاپتیر اینطوری نیست درسته؟چه راهکاری شما پیشنهاد میکنین؟


سپاسگزارم

plague
دوشنبه 05 اسفند 1398, 15:20 عصر
من هم چنان متوجه نمیشم مشکلت چیه ... به نظرمیاد تمرکز کردی رو تغییر شکل فرم با رویداد هایی که شما ایجاد میکنی
این برای پاپتیر هیچ مشکلی نیست و اصلا برای همین نوشته شده و کلی راهکار داره برای حل این مشکلات

فقط قبلش کافیه که خودت یکبار مراحل رو بری و ببینی تو فرم چه تغییراتی ایجامد میشه
بعد عین اون موارد رو کد نویسی کنی براش

شما میتونی برای پاپتیر کد بنویسی که مقادیر فرم رو انتخاب کنه
بعد منتظر بمونه که مقادیر فرم فلان تاثیر و تغییر رو ایجاد کنه تو فرم و ......
میتونی کد بنویسی که یک چیز رو سرچ کنه و ...
همه اینکارورو میتونه انجام بده پایتیر رو به عنوان یک کارمند در نظر بگیر که نشوندی پای دستگاه و بهش میگی چیکار کنه و اونم همون کار رو میکنه

هرچند رک بگم به نظر میاد مبتدی باشی توی js , nodejs اینا مباحث پیشرفته هستن و فکر میکنم مشکل پیدا کنی برا اجراشون


توی کنسول مرورگر هم میتونی کد بزنی به قدرت پاپتیر نیست البته ولی میتونه بعضی سناریو ها رو حل کنه
عملا زبان برنامه نویسی هردو javascript هستش برای همین همون کارارو تو کنسول رو میتونی انجام بدی تقریبا ولی خب خیلی محدود تره