• 07-10-2012, 18:49:22
    #1
    Selamlar,

    Yine ben Veritabanı gitmeden önce ertan2002 abim ve kullanıcı adını maalesef unuttuğum arkadaşlar sağolsun yardımcı olmuşlardı ve sonunda programımı tamamlayabilmiştim.

    Şimdi, operatörleri sorgulatmaya çalışıyorum. Listbox'dan toplu sorgulamaya geçeceğim ancak önce temelini tamamlayamadım programın. Bu şekle getirebilmek için 3 farklı siteden facebook'a giriş yaptırma kodlarını inceledim, mantığını kavramaya çalıştım. Bir de demo olarak dağıtılan bir programı inceledim. En son da bu kodu kullanacağım site olan numarasorgulama (nokta) net'e uyarladım.

    Webbrowser görünür haldeyken sorgulama başarılı ancak alttaki kod ile bunu otomatikleştirip browser'ı görünmez yapmak istiyorum.

    Alıntı
    string str = this.webBrowser1.DocumentText.ToString();
    if (str.Contains("VODAFONE"))
    {
    this.label11.Text = "Vodafone";
    }
    else if (str.Contains("AVEA"))
    {
    this.label11.Text = "Avea";
    }
    else
    {
    this.label11.Text = "Turkcell";
    }
    this.label11.Visible = true;
    Bu kod sonucunda, browser'da VODAFONE çıksa dahi Turkcell çıkıyor. Nerede Yanlış yapmaktayım ?

    Şimdiden teşekkür ederim.
  • 07-10-2012, 19:05:33
    #2
    büyük küçük harfe dikkat et. ondan olabilir yani oradan dönen sonuç büyük harfle yazılmış vodafone mu.
    ikinci bir ihtimal de bu kod birden fazla çalışıyor ve str boş dönüyor. if lerdeki şartına bakıyor hiç biri uymadığı içim turkcell e giriyor. bunu şu şekilde yap

    else if
    {
    this.label11.Text = "Turkcell";
    }

    else
    {
    this.label11.Text = "GSM Operatoru bulunamadı";
    }


    eğer bulunamadı yazarsa str de problem var. if in oralara bir break point koyup str nin içeriğine bakabilirsin. ya da str nin içeriğini bir textbox a eşitleyip oradan koplayarak not defterine gelen operator değerine bak. eğer varsa o değer o zaman dediğim gibi kodun birden fazla çalışıyor olabilir ve str içeği boş oluyor.

    webbrowser un değişiminin tamamlanmasından sonra bunu çalıştıracaksan webbrowsercompleted eventine kodunu yazman gerek. ancak bazen birden fazla giriyor. bunun için de e parametresini kullanarak bir if yazman lazım. yukarıda söylediklerimi dene olmazsa diğerini de söyleyim ya da denk gelirsek bana teamviewer den id ve pass yollarsan bilgisayarına bağlanıp bakayım
  • 07-10-2012, 19:14:36
    #3
    ertan2002 adlı üyeden alıntı: mesajı görüntüle
    büyük küçük harfe dikkat et. ondan olabilir yani oradan dönen sonuç büyük harfle yazılmış vodafone mu.
    ikinci bir ihtimal de bu kod birden fazla çalışıyor ve str boş dönüyor. if lerdeki şartına bakıyor hiç biri uymadığı içim turkcell e giriyor. bunu şu şekilde yap

    else if
    {
    this.label11.Text = "Turkcell";
    }

    else
    {
    this.label11.Text = "GSM Operatoru bulunamadı";
    }


    eğer bulunamadı yazarsa str de problem var. if in oralara bir break point koyup str nin içeriğine bakabilirsin. ya da str nin içeriğini bir textbox a eşitleyip oradan koplayarak not defterine gelen operator değerine bak. eğer varsa o değer o zaman dediğim gibi kodun birden fazla çalışıyor olabilir ve str içeği boş oluyor.

    webbrowser un değişiminin tamamlanmasından sonra bunu çalıştıracaksan webbrowsercompleted eventine kodunu yazman gerek. ancak bazen birden fazla giriyor. bunun için de e parametresini kullanarak bir if yazman lazım. yukarıda söylediklerimi dene olmazsa diğerini de söyleyim ya da denk gelirsek bana teamviewer den id ve pass yollarsan bilgisayarına bağlanıp bakayım
    Dediğin gibi büyük küçük harfe dikkat ettim üstadım, sitede hepsi büyük yazıyor.

    Koddaki dediğin değişimi de yaptım, operatör bulunamadı döndü ama str nedir onu da bilmiyorum. Microsoft'un sitelerinde dolandım durdum ama hiçbir şey anlamadım desem de yalan olmaz herhalde. Aslında sitede operatörler <span class="SD36"></span> arasında oluyor ama onları nasıl çekeceğimi hiç bulamadım, genelde anlatımlar Google'ın title'ını çekmek üzerine ama onu da uyarlayamadım açıkçası...

    Completed event'ına yazdığımda facebook'da giriş yapamadım, ben de başka bir sitede aşağıdaki şeklini buldum. Facebook üzerinde denedim, olunca o kodları iptal edip siteye uyarladım üstadım. Kodlar aşağıda...

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    
    namespace LinkClick
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
                //webBrowser1.Navigate("http://www.facebook.com");
                webBrowser1.Navigate("http://www.numarasorgulama.net");
            }
    
            private void git_Click(object sender, EventArgs e)
            {
                if (webBrowser1.ReadyState == WebBrowserReadyState.Complete)
                {
                    //string Email = textBox1.Text;
                    //string sifre = textBox2.Text;
                    string numara = telnumara.Text;
                    //webBrowser1.Document.GetElementById("email").InnerText = Email;
                    //webBrowser1.Document.GetElementById("pass").InnerText = sifre;
                    webBrowser1.Document.GetElementById("tel").InnerText = numara;
                    webBrowser1.Document.Forms[0].InvokeMember("submit");
    
                }
    
                string str = this.webBrowser1.DocumentText.ToString();
                if (str.Contains("VODAFONE"))
                {
                    this.label11.Text = "Vodafone";
                }
                else if (str.Contains("AVEA"))
                {
                    this.label11.Text = "Avea";
                }
                else if (str.Contains("TURKCELL"))
                {
                    this.label11.Text = "Turkcell";
                }
                else 
                {
                    this.label11.Text = "GSM Operatoru bulunamadı";
                }
                this.label11.Visible = true;
            }
    
        }
    }
  • 07-10-2012, 19:30:57
    #4
    Üyeliği durduruldu
    tüm hepsinde aynı <span class="SD36"> span kullanılıyor
  • 07-10-2012, 19:35:31
    #5
    Nasıl hocam, ben numara sorgulatıp kaynağa giriyorum, sadece telefon numarasında ve operatör adında <span class="SD36"> var. Eğer bu konuda da verebileceğiniz bir anlatım varsa araştırıp öğrenmeye çalışabilirim.
  • 07-10-2012, 19:45:31
    #6
    Üyeliği durduruldu
    hocam numarayı textbox amı yazıyorsunuz siz

    textbox1.text = " <span class="SD36">"
    textbox2.text= "</span> tarafından hizmet almaktadır. <br />"


    Dim gelenveri As String = WebBrowser1.DocumentText
    Dim numarabaslangic As Integer = gelenveri.IndexOf(TextBox1.Text) + TextBox1.Text.Length
    Dim numarason As Integer = gelenveri.Substring(numarabaslangic).IndexOf(TextB ox2.Text)
    Dim metin As String = Regex.Replace(gelenveri.Substring(numarabaslangic, numarason), "<[^>]*>", String.Empty)
    dim sonuc as string = metin.trim

    vb.net kodu çevirip kullanabilirsiniz
  • 07-10-2012, 19:51:28
    #7
    Hocam pek anlayamadım ancak http://www.developerfusion.com/tools.../vb-to-csharp/ ile çevirmeye çalıştığımda line 1 col 1: EOF expected şeklinde hata verdi ?

    Numarayı textbox'a yazıp gönder diyorum, program da numarayı ilgili kutuya yazıp submit ediyor sanırım. Ancak açılan sayfadaki operatör adını almaya çalışıyorum şu an...
  • 07-10-2012, 19:57:02
    #8
    Üyeliği durduruldu
    tv verin ben çevirerek yazim
  • 08-10-2012, 19:43:49
    #9
    AnkProgram adlı üyeden alıntı: mesajı görüntüle
    tv verin ben çevirerek yazim
    tv dediğiniz teamviewer mı üstadım ?