PDA

View Full Version : ارسال داده به یک سایت بدون ابزار



mehdi5106
چهارشنبه 15 مرداد 1399, 18:29 عصر
سلام
من میخوام از طریق یک برنامه ویندوزی و چند تکست باکس، متن هایی رو به سایتهایی مثل گوگل ارسال کنم و سپس با کلیک خودکار رو دکمه جستجو عمل جستجو رو انجام بدم...
چه ابزاری یا راهکاری وجود داره که کمکم کنه؟
فقط بدون کامپوننت و ابزار دیگه ای(web browser و ...) میخوام اینکار انجام بشه. آیا امکانش هست؟

مهدی کرامتی
چهارشنبه 15 مرداد 1399, 18:54 عصر
بدون استفاده از کامپوننت و پکیج که نمیشه، مگر اینکه خودتون تمام کد و کتابخانه های لازم رو بنویسید.

اگر در نوگت (رایت کلیک کردن روی شاخه References در پروژه تون در ویژوال استودیو، و انتخاب گزینه Manage Nuget Packages) کلمه Google رو جستجو کنید کلی پکیج جهت تبادل داده با سرویس های مختلف گوگل، از جمله سرویس سرچ شون وجود داره که بعضی هاش توسط خود گوگل ارائه شده.
پکیج های فوق رایگان هستند.

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

جهت استفاده از توابع فوق میبایست یک Develoer Api Key از صفحه مربوطه (آدرس و نحوه گرفتش در پنل Developer گوگل و مستندات همون کتابخانه ها هست) از گوگل بگیرید (کلید فوق رایگان است). از اون کلید برای شناسایی شما و برنامه تون استفاده خواهد شد.

من در یک پروژه مشابه صورت مسئله شما رو داشتم و لازم بود که در سطح اینترنت، و یک سری سایت های مشخص کلمه کلیدی که تو یک TextBox تایپ شده رو جستجو کنم و روی نتیجه دریافت شده کاری انجام بدم. با استفاده از روش فوق، خیلی راحت و ظرف یکی دو ساعت کار جمع شد.

mehdi5106
چهارشنبه 15 مرداد 1399, 19:30 عصر
بدون استفاده از کامپوننت و پکیج که نمیشه، مگر اینکه خودتون تمام کد و کتابخانه های لازم رو بنویسید.

اگر در نوگت (رایت کلیک کردن روی شاخه References در پروژه تون در ویژوال استودیو، و انتخاب گزینه Manage Nuget Packages) کلمه Google رو جستجو کنید کلی پکیج جهت تبادل داده با سرویس های مختلف گوگل، از جمله سرویس سرچ شون وجود داره که بعضی هاش توسط خود گوگل ارائه شده.
پکیج های فوق رایگان هستند.

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

جهت استفاده از توابع فوق میبایست یک Develoer Api Key از صفحه مربوطه (آدرس و نحوه گرفتش در پنل Developer گوگل و مستندات همون کتابخانه ها هست) از گوگل بگیرید (کلید فوق رایگان است). از اون کلید برای شناسایی شما و برنامه تون استفاده خواهد شد.

من در یک پروژه مشابه صورت مسئله شما رو داشتم و لازم بود که در سطح اینترنت، و یک سری سایت های مشخص کلمه کلیدی که تو یک TextBox تایپ شده رو جستجو کنم و روی نتیجه دریافت شده کاری انجام بدم. با استفاده از روش فوق، خیلی راحت و ظرف یکی دو ساعت کار جمع شد.

ممنونم از پاسختون جناب کرامتی...
یه سوال: این روش فکر کنم برای گوگل انجام میشه.... اما اگه بخوام سایت هدفم هر چیزی باشه، اونوقت چطور؟ مثلا همین سایت برنامه نویس یا هر سایت دیگری که برای وارد شدن به پنل اعضا ، لازمه که نام کاربری و رمز عبور وارد بشه و وارد پنل مدیریت بشه.... من هدفم یه چیزی مثل این هست: مثلا نام کاربری و رمز عبور یه سایت را در سی شارپ وارد کنم و با زدن یک دکمه کاربر وارد پنل کاربری خود در هر مرورگری بشه...
تو این حالت نمی خوام که کامپوننتی مثل web browser یا امثال اون استفاده بشه و اطلاعات رو بگیرم و ارسال کنم....
قبلا یه پستی برا این مورد مشابه توسط یکی از کاربران ایجاد شده بود. اما الان هر چی جستجو می کنم پیدا نمیکنم.... "حتی یه نمونه برنامه هم گذاشته بودند"

متن رو از تکست باکس برنامه ارسال می کرد به یکی از تکست باکس های سایت و ...(بدون هیچ ابزاری...)

تگ های نام کاربری و رمز عبور:

<input class="form-control ltr keyboardInput" id="Login_Username" name="Login.Username" type="text" value="" vki_attached="true">

<input autocomplete="off" class="form-control ltr keyboardInput" id="Login_Password" name="Login.Password" type="password" vki_attached="true">


<button type="submit" class="btn btn-main btn-block btn-lg">ورود</button>

خلاصه بگم: مثلا نام کاربری و رمز عبور رو از طریق دو تکست باکس وارد تکست باکس ها متناظر در مرورگر بکنم و با کلیک روی دکمه ورود، وارد پنل کاربری بشم....یا فرض کنید وارد سایتی شدم که برای ثبت نام باید فیلدهای مشخصات رو پر کنم و روی دکمه ثبت نام کلیک کنم تا اطلاعات ثبت بشه....

ضمنا از selenium استفاده کردم، اما اون چیزی رو که میخوام تحویلم نداده....

_behnam_
چهارشنبه 15 مرداد 1399, 22:25 عصر
سلام
اگر منظورتون این هست که بتونید فیلد های درون فرم سی شارپ رو به مرورگرها بفرستید باید از طریق api های ویندوز شناسه پنجره مرورگر و از طریق پنجره مرورگر فیلدهارو گیر بیارید. البته که اگر بخواید با ie ارتباط برقرار کنید راحت تر هست
https://social.msdn.microsoft.com/Forums/en-US/631cd15d-0bf8-4b23-9897-9c9b8b21a36e/open-browser-with-username-and-password?forum=csharplanguage
اما روش بالا توصیه نمیشه.
روش بهتر این هست که شما از طریق سوکت به سرور موردنظر متصل بشید و درخواست بفرستید و نتیجه رو‌دریافت و‌پردازش کنید.
مثلا برای لاگین به سایت برنامه نویس ، شما باید صفحه لاگین رو بررسی کنید، لینک لاگین و‌متد لاگین (که post هست) و فیلدهای ارسالی رو بدست بیارید. اونهارو بفرستید ، اگر صحیح بود، کاربر وارد میشه و‌به شما کوکی میده.‌دفعه های بعد ک شما خواستید به سرور بفهمونید که کاربر لاگین کرده‌هستید باید کوکی هارو ارسال کنید.

مهدی کرامتی
پنج شنبه 16 مرداد 1399, 13:52 عصر
اگر عملکرد سایت مورد نظر بر اساس فرم های HTML باشه، با استفاده از HttpClient و کلاس های مشابه اون میشه کارها رو انجام داد. پروسه رو هم جناب بهنام در پست بالایی (https://barnamenevis.org/showthread.php?561958-%D8%A7%D8%B1%D8%B3%D8%A7%D9%84-%D8%AF%D8%A7%D8%AF%D9%87-%D8%A8%D9%87-%DB%8C%DA%A9-%D8%B3%D8%A7%DB%8C%D8%AA-%D8%A8%D8%AF%D9%88%D9%86-%D8%A7%D8%A8%D8%B2%D8%A7%D8%B1&p=2433264&viewfull=1#post2433264) توضیح دادند.

اما اگر سایت مقصد مبتنی بر فریم ورک های کلاینت ساید مانند انگولار و React و امثالهم باشه، میبایست از Selenium Web Driver استفاده کنید. برای آموزش Selenium هم کتاب و آموزش ویدئویی زیاده، کافی کمی سرچ کنید. خوبی اش اینه که Selenium بهمراه سی شارپ قابل استفاده است.