Ntk.Chrome یک نرمافزار قدرتمند برای اتوماسیون وب و نظارت بر درخواستهای شبکه است که با استفاده از Selenium WebDriver و Chrome DevTools Protocol ساخته شده است. این نرمافزار امکان پر کردن خودکار فرمهای وب، نظارت بر درخواستهای HTTP، و تحلیل ترافیک شبکه را فراهم میکند.
- پر کردن خودکار فرمها: قابلیت پر کردن خودکار فیلدهای مختلف در وبسایتها
- پشتیبانی از انواع فیلد: input، textarea، select و سایر عناصر فرم
- تشخیص هوشمند فیلدها: جستجوی فیلدها بر اساس name، id، placeholder و XPath
- ارسال خودکار فرم: کلیک خودکار روی دکمههای submit
- ردیابی درخواستهای HTTP: نظارت بر تمام درخواستها و پاسخهای شبکه
- نمایش جزئیات درخواست: نمایش headers، body، status code و سایر اطلاعات
- فیلتر کردن درخواستها: نمایش فقط درخواستهای مهم (صفحات اصلی)
- فرمتهای مختلف نمایش: JSON، HTML، و متن ساده
- نظارت بر URL های خاص: تنظیم URL های خاص برای نظارت
- استخراج پارامترها: استخراج خودکار پارامترهای مهم از پاسخها
- هشدارهای هوشمند: نمایش پاپآپ و لاگگیری برای رویدادهای مهم
- ذخیره لاگها: ذخیره اطلاعات نظارت در فایلهای جداگانه
- دانلود خودکار Chromium: دانلود و نصب خودکار نسخههای سازگار
- مدیریت ChromeDriver: بهروزرسانی خودکار ChromeDriver
- سازگاری نسخهها: تضمین سازگاری بین Chromium و ChromeDriver
- آرشیو نسخهها: نگهداری نسخههای قبلی برای استفاده مجدد
- Windows 10/11 (64-bit)
- .NET 9.0 Runtime یا بالاتر
- Google Chrome (اختیاری - در صورت عدم وجود Chromium دانلود شده)
- Visual Studio 2022 یا Visual Studio Code (برای توسعه)
Selenium.WebDriver (4.16.2)
Selenium.Support (4.16.2)
Selenium.WebDriver.ChromeDriver (141.0.7390.7800)
Newtonsoft.Json (13.0.4)
Microsoft.Extensions.Configuration.Json (9.0.10)
Microsoft.Extensions.DependencyInjection (9.0.10)
Serilog (4.3.0)
Serilog.Sinks.File (7.0.0)
git clone https://github.com/your-username/Ntk.Chrome.git
cd Ntk.Chromedotnet restoredotnet build --configuration Releasedotnet run- اجرای برنامه: فایل
Ntk.Chrome.exeرا اجرا کنید - تنظیمات اولیه: در اولین اجرا، فرم تنظیمات نمایش داده میشود
- پیکربندی مسیرها: مسیرهای ChromeDriver، برنامه و لاگها را تنظیم کنید
- تنظیم نسخهها: نسخههای Chromium و ChromeDriver مورد نظر را وارد کنید
{
"ChromeDriverPath": "ChromeDriver",
"ProgramPath": "C:\\Program Files\\Ntk.Chrome",
"LogPath": "%TEMP%\\NtkChromeDriver\\logs",
"EnableProgramStatus": true,
"ChromiumVersion": "120.0.6099.109",
"ChromeDriverVersion": "120.0.6099.109"
}{
"WebsiteUrl": "https://example.com/login",
"Fields": [
{
"Name": "username",
"Value": "your_username"
},
{
"Name": "password",
"Value": "your_password"
}
],
"UrlMonitoring": [
{
"Name": "Login Success",
"Url": "/dashboard",
"Parameters": [
{
"Name": "user_id",
"Description": "User ID after login",
"Required": true
}
],
"ShowPopup": true,
"LogToFile": true,
"PopupTitle": "Login Successful"
}
]
}- برنامه را اجرا کنید
- منتظر بمانید تا راهاندازی اولیه تکمیل شود
- در صورت نیاز، Chromium و ChromeDriver دانلود خواهند شد
- روی دکمه "شروع" کلیک کنید
- برنامه Chrome را باز کرده و به وبسایت مورد نظر میرود
- فرمها به صورت خودکار پر میشوند
- درخواستهای شبکه در جدول نمایش داده میشوند
- درخواستهای شبکه در جدول نمایش داده میشوند
- برای مشاهده جزئیات، روی درخواست مورد نظر کلیک کنید
- فرمت نمایش را انتخاب کنید (متن، JSON، HTML)
- روی دکمه "توقف" کلیک کنید
- ChromeDriver متوقف شده و منابع آزاد میشوند
Ntk.Chrome/
├── Forms/ # فرمهای رابط کاربری
│ ├── MainForm.cs # فرم اصلی برنامه
│ ├── SettingsForm.cs # فرم تنظیمات
│ ├── WebsiteSettingsForm.cs # فرم تنظیمات وبسایت
│ └── UrlMonitoringConfigForm.cs # فرم تنظیمات نظارت
├── Services/ # سرویسهای برنامه
│ ├── ChromeDriverService.cs # سرویس مدیریت ChromeDriver
│ ├── NetworkService.cs # سرویس نظارت بر شبکه
│ ├── LoggingService.cs # سرویس لاگگیری
│ └── VersionManager.cs # مدیریت نسخهها
├── Models/ # مدلهای داده
│ └── AppSettings.cs # تنظیمات برنامه
├── checkjs/ # فایلهای JavaScript
├── logs/ # فایلهای لاگ
├── Program.cs # نقطه ورود برنامه
└── Ntk.Chrome.csproj # فایل پروژه
var options = new ChromeOptions();
options.AddArgument("--no-sandbox");
options.AddArgument("--disable-dev-shm-usage");
options.AddArgument("--disable-gpu");
options.AddArgument("--remote-debugging-port=0");- نام: نام توصیفی برای تنظیمات نظارت
- URL: بخشی از URL که باید نظارت شود
- پارامترها: فهرست پارامترهایی که باید استخراج شوند
- نمایش پاپآپ: نمایش هشدار در صورت وقوع رویداد
- ذخیره در فایل: ذخیره اطلاعات در فایل لاگ
- مسیر لاگها: مسیر ذخیره فایلهای لاگ
- سطح لاگ: تنظیم سطح جزئیات لاگها
- چرخش لاگها: مدیریت اندازه فایلهای لاگ
خطا: خطا در دانلود Chromium
راهحل: بررسی اتصال اینترنت و مسیرهای فایروال
خطا: نسخه ChromeDriver با Chromium سازگار نیست
راهحل: بهروزرسانی نسخهها در تنظیمات
خطا: فیلد مورد نظر یافت نشد
راهحل: بررسی نام فیلدها در تنظیمات وبسایت
- فایلهای لاگ در پوشه
logs/ذخیره میشوند - لاگهای نظارت در
logs/url-monitoring/قرار دارند - لاگهای ChromeDriver در مسیر ChromeDriver ذخیره میشوند
- Timeout: تنظیم زمان انتظار برای عملیات
- Retry Logic: منطق تلاش مجدد برای عملیات ناموفق
- Memory Management: مدیریت حافظه برای عملیات طولانی
- فیلتر درخواستها: نمایش فقط درخواستهای مهم
- کاهش حجم لاگ: عدم ذخیره درخواستهای غیرضروری
- مدیریت Thread: استفاده بهینه از Thread ها
- ذخیره امن اطلاعات: رمزگذاری اطلاعات حساس
- مدیریت Session: مدیریت صحیح session ها
- اعتبارسنجی ورودی: بررسی صحت اطلاعات ورودی
- استفاده از متغیرهای محیطی برای اطلاعات حساس
- محدود کردن دسترسی به فایلهای تنظیمات
- استفاده از HTTPS برای ارتباطات
- از طریق Issues در GitHub
- ارائه جزئیات کامل خطا
- ضمیمه کردن فایلهای لاگ
- توضیح کامل نیاز
- ارائه مثالهای کاربردی
- بررسی امکانپذیری
این پروژه تحت مجوز MIT منتشر شده است. برای جزئیات بیشتر، فایل LICENSE را مطالعه کنید.
- GitHub Issues: برای گزارش مشکلات
- Email: info@alikaravi.com
- تلفن: (00971) 504504324
- وبسایت: alikaravi.com
- Selenium WebDriver Documentation
- Chrome DevTools Protocol
- .NET 9.0 Documentation
- Alireza Karavi Portfolio
توجه: این نرمافزار برای اهداف آموزشی و توسعه ساخته شده است. لطفاً از آن مطابق با قوانین و مقررات استفاده کنید.