Oto form doldurma yapabilir miyim?

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Onaylı Üye
Katılım
16 Ara 2015
Mesajlar
104
Tepki puanı
11
Ödüller
9
10 HİZMET YILI
arkadaşlar online eğitimde yoklama için forum doldurtuyorlar bu formu otomatik dolduracak bir şey yapabilir miyim?
aklımdaki şey şu
programda yazılı url ye gidicek
ad soyad
okul no
saat tarih
ve sınıfı otomatik olarak seçecek
ve benim verdiğim yoklama kodunu gerekli bölüme yazıcak

ad soyad okul no falan hep sabit olmasını düşünüyorum acaba böyle birşey yapabilir miyim
 
Onaylı Üye
Katılım
15 Eki 2017
Mesajlar
76
Çözümler
1
Tepki puanı
1
Ödüller
5
Yaş
38
8 HİZMET YILI
Hangi ders programı kullandığına bağlı iyi forumlar
 
Hile kullanmak kolsuzluk değil akıllılıktır
Banlı Üye
Katılım
16 May 2019
Mesajlar
1,073
Çözümler
8
Tepki puanı
204
Ödüller
4
Yaş
24
7 HİZMET YILI
ilk olarak yanlış yazmışsınız farm olmuş :D form olacakken

bu iş biraz zordur o yüzden size mantığını anlatayım siz geliştirirsiniz artık

ilk önce öğrenci bilgilerinin bir websitesinde kayıtlı olması lazım gerekli bilgiler girildiğinde internet sayfasındakiler kontrol edecek ve ona göre formu otomatik dolduracak
 
Uzman Üye
Katılım
13 Şub 2019
Mesajlar
197
Tepki puanı
15
Ödüller
4
7 HİZMET YILI
Arkadaşlar saçma cevaplar vermiş bunun en kolay ve en güzel yolu Python Selenium'dur

Python Selenium Auto Form Submit olarak internette aratın Türkçe/İngilizce kaynak bol bol var.
 
Süper Üye
Katılım
5 Ara 2018
Mesajlar
628
Çözümler
6
Tepki puanı
180
Ödüller
9
7 HİZMET YILI
Zamanında buna benzer bir proje yapmıştım al 3-4 düzenlemeyle tam olarak aradığın kod bu
çalacak kişiye şimdiden tüm küfürleri etmiş bilinmek istiyorum :) öte yandan kullanmak isteyen herkese eğer public proje ise çok değil bir isim hakkı bırakmaları dileğiyle

Ne yapman gerektiğini de kısaca açıklayayım kolaylık olsun :
benim verdiğim ana maddeleri değiştir senin yazı yazmak istediğin ksımlar e-mail ad soyad yorum gibi değil de öğrenci adı soyadı tc'si şeklinde olacak direkt source attım kafana göre düzenle diye zaten yazılım biliyorsan bu açıklamayı benim yapmam da gereksiz ha eğer bilmiyorsan sırf senin dersten kaçman için kod yazamam hali hazırda eski projelerimden birini atıyorum şu an kimse o hammallığı yapmaz kanka internette de öyle bir program mevcut değil hali hazırda neyse kolay gelsin.

C#:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;

namespace PHonlineformbot
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void btnGit_Click(object sender, EventArgs e)
        {
            IlkGiris = true;
            webBrowser1.Navigate(txtUrl.Text);
        }

        bool IlkGiris = false;

        private void button1_Click(object sender, EventArgs e)
        {
            string icerik = webBrowser1.Document.Body.InnerHtml;
            Clipboard.SetText(icerik);
        }

        private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {

            if (e.Url.Equals(webBrowser1.Url))
            {
                MessageBox.Show("Url tamamlandı", "Bilgilendirme Penceresi");
            }


            if (IlkGiris)
            {

                //webBrowser1 kaynak kodu bodysinin input tagini ve tipinde olanları collection list'te sakla
                HtmlElementCollection inputlar = webBrowser1.Document.Body.GetElementsByTagName("input");

                foreach (HtmlElement input in inputlar)
                {

                    //id attributelarını string tipinde sakla
                    string attribute = input.GetAttribute("name");
                    Console.WriteLine("name attributenu sakladı");


                    //id attribute'u boş değil ve email'e eşit ise value attribute'una email yaz
                    if (!string.IsNullOrEmpty(attribute) && attribute == "AdSoyad")
                    {

                        Console.WriteLine("name attribute boş değil : " + attribute);
                        input.SetAttribute("value", "kullaniciAdi");
                        Console.WriteLine("name attribute'u AdSoyad'a eşitse değerini kullaniciAdi olarak atadı");
                        
                    }
                }

                
                //sitede kaynak kodunu txtye yazar ama tag araması yaptıramaz

                /*string input = webBrowser1.Document.Body.InnerHtml;

                using (System.IO.StreamWriter file =
                new System.IO.StreamWriter(@"C:\Users\PH\Desktop\PHK.txt"))
                {
                    file.WriteLine(input);

                    MessageBox.Show("Kaynak kodu yazıldı", "Bilgilendirme Penceresi");
                }*/
            



            }
        }
    }
}
 
Tutti mi chiedono perché ho imparato questa lingua
Süper Üye
Katılım
17 Mar 2016
Mesajlar
634
Çözümler
5
Tepki puanı
112
Ödüller
11
10 HİZMET YILI
kanka webbrowserlerle felan uğraşma chrome selenium u var nuget paketlerinde onu kullanarak chrome yi form dan kontrol edebiliyosun başka tarayıcılarında selenium u var yani illa chrome olmasına gerek yok tabii

mesela nuget paketlerini yükleyebildin diyelim

dim driver as ChromeDriver
dim service As ChromeDriverService = ChromeDriverService.CreateDefaultService

form load olayında ise şöyle yapın

service.HideCommandPromptWindow = True
driver = new ChromeDriver(service)
driver.navigate().goToUrl("senin linkin")
şimdi form açıldı tarayıcın linkine gitti atıyorum tarayıcında isim girmen gereken yerin class'ı:gLFyf gsfi bu olduğunu var sayalım illa class olmasına gerek yok xpath olarak da alabilirsin ben çoğunlukla xpath kullanırım: /html/body/div[1]/div[3]/form/div[2]/div[1]/div[1]/div/div[2]/input

herneyse şimdi bu ya forma buton ekledin buton eventine diceksin
dim ad as iwebElement = driver.findElement(By.ClassName("gLFyf gsfi"))
ad.SendKeys("İsmail")

ve böylece tarayıcıdaki isim girmen gereken yere ismail yazdıracaksın mantık böyle çalışıyor tek sorun sitede captcha geçiti varsa chrome tarayıcılar için captcha solver eklentiler var bunun paketini internetten indirip load eventinde eklentiyle birlikte çalıştıracaksın tarayıcını böylece eklenti oto kurulmuş olacak ve captchaya tıklandığı zaman altta bi kutucuk olacak kodlarla o kutucuğun frame sini bulup ona switch yapıp tıklattıracaksın ondan sonra captcha yı geçecek ve 0. switch e geçeceksiniz böylece captcha yı da geçmiş olacaksınız captcha işi çok zahmetlidir ama captcha yoksa çok kolay botlar yazılabilir selenium ile ben mantığını açıkladım sen internetten vb.net selenium kurulumlarına bak kullanımı zaten çokta zor değil youtubede bulursun
 
Onaylı Üye
Katılım
7 Eyl 2018
Mesajlar
59
Tepki puanı
3
Ödüller
7
7 HİZMET YILI
Güzel bir konu ve cevaplar çok ilgi çekici, merak uyandırıcı aynı zamanda bilgilendirici. Yardımcı olanlara konu sahibi olmayarak çok teşekkür ediyorum ♥ Hemen yer imlerine eklicem, umarım konu silinmez
 
Onaylı Üye
Katılım
16 Ara 2015
Mesajlar
104
Tepki puanı
11
Ödüller
9
10 HİZMET YILI
konuyu saçma yerde açmış olabilirim nerde açıcağımı bilmiyordum
Post automatically merged:

kanka webbrowserlerle felan uğraşma chrome selenium u var nuget paketlerinde onu kullanarak chrome yi form dan kontrol edebiliyosun başka tarayıcılarında selenium u var yani illa chrome olmasına gerek yok tabii

mesela nuget paketlerini yükleyebildin diyelim

dim driver as ChromeDriver
dim service As ChromeDriverService = ChromeDriverService.CreateDefaultService

form load olayında ise şöyle yapın

service.HideCommandPromptWindow = True
driver = new ChromeDriver(service)
driver.navigate().goToUrl("senin linkin")
şimdi form açıldı tarayıcın linkine gitti atıyorum tarayıcında isim girmen gereken yerin class'ı:gLFyf gsfi bu olduğunu var sayalım illa class olmasına gerek yok xpath olarak da alabilirsin ben çoğunlukla xpath kullanırım: /html/body/div[1]/div[3]/form/div[2]/div[1]/div[1]/div/div[2]/input

herneyse şimdi bu ya forma buton ekledin buton eventine diceksin
dim ad as iwebElement = driver.findElement(By.ClassName("gLFyf gsfi"))
ad.SendKeys("İsmail")

ve böylece tarayıcıdaki isim girmen gereken yere ismail yazdıracaksın mantık böyle çalışıyor tek sorun sitede captcha geçiti varsa chrome tarayıcılar için captcha solver eklentiler var bunun paketini internetten indirip load eventinde eklentiyle birlikte çalıştıracaksın tarayıcını böylece eklenti oto kurulmuş olacak ve captchaya tıklandığı zaman altta bi kutucuk olacak kodlarla o kutucuğun frame sini bulup ona switch yapıp tıklattıracaksın ondan sonra captcha yı geçecek ve 0. switch e geçeceksiniz böylece captcha yı da geçmiş olacaksınız captcha işi çok zahmetlidir ama captcha yoksa çok kolay botlar yazılabilir selenium ile ben mantığını açıkladım sen internetten vb.net selenium kurulumlarına bak kullanımı zaten çokta zor değil youtubede bulursun
teşekkürler aradığım cevap tam tamına buydu bilgin varsa mesela seçmeli kutucuklar var şubem gibi mesela ilk tıklıyorum sonra ordan şubemi bulup seçiyorum onu nasıl yapıcam araştırıyorum ama tr açıklama bulamadım
 
Tutti mi chiedono perché ho imparato questa lingua
Süper Üye
Katılım
17 Mar 2016
Mesajlar
634
Çözümler
5
Tepki puanı
112
Ödüller
11
10 HİZMET YILI
konuyu saçma yerde açmış olabilirim nerde açıcağımı bilmiyordum
Post automatically merged:


teşekkürler aradığım cevap tam tamına buydu bilgin varsa mesela seçmeli kutucuklar var şubem gibi mesela ilk tıklıyorum sonra ordan şubemi bulup seçiyorum onu nasıl yapıcam araştırıyorum ama tr açıklama bulamadım
yine aynı mantık bak şimdi ben bitane site buldum
Bağlantıları görmek için lütfen Giriş Yap

mesela bu sitede ülke seçme yeri var, incele kısmından o ülke seçme yeri buluyosun sonra elementlerine indiğinde options lar var orda mesela çin var o çine sağ tıklayıp copy diyip xpath diyosun, bulduğum xpath = //[@id='email_and_password']/div[7]/div/select/option[15]
normalde email and password yerinde çift tırnak işareti olur onu teke düşürceksin sonra programa dönüp şöyle kod yazıyosun:
Dim COUNTRY As IWebElement = driver.FindElement(By.XPath("//[@id='email_and_password']/div[7]/div/select/option[15]"))
COUNTRY.Click()
1614294679971.png


her şey aynı mantıkta ister checkbox olsun ister combobox olsun sitede hepsinin xpath ini yada class ını bulup programdan click yollatıyosun
 
Uzman Üye
Katılım
13 Şub 2019
Mesajlar
197
Tepki puanı
15
Ödüller
4
7 HİZMET YILI
konuyu saçma yerde açmış olabilirim nerde açıcağımı bilmiyordum
Post automatically merged:


teşekkürler aradığım cevap tam tamına buydu bilgin varsa mesela seçmeli kutucuklar var şubem gibi mesela ilk tıklıyorum sonra ordan şubemi bulup seçiyorum onu nasıl yapıcam araştırıyorum ama tr açıklama bulamadım
Detaylı :
Basit :

Loop ekleyerek sınırsız yapabilirsin.
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Üst