Visual Basic/Wikibot yazmanın temelleri

Vikikitap, özgür kütüphane

Özet: Bu bölümde webbrowser bileşeni kullanılarak wikibot yazılımı oluşturmaktan bahsedilmektedir.

Otomatik olarak oturum açma[değiştir]

Aşağıdaki kod karşımıza oturum açma sayfasını çıkartır. Burada adrese girilen bot kullanıcı adı ve şifresi sayfadaki kutucuklara otomatik olarak yazılır:

WebBrowser1.Navigate _ "http://tr.wikipedia.org/w/index.php?title=%C3%96zel:Userlogin&wpName=Botunuzun_kullanıcı_adı&wpPassword=şifre&wpRemember=1&wpLoginattempt=Log+in"

Yukarıdaki kodu formunuzun load olayına yazabilirsiniz. Ancak oturum aç düğmesini tıklamak için kullanılan aşağıdaki kodu sayfa yüklendikten sonra kullanabilirsiniz:

Private Sub Command1_Click()


WebBrowser1.Document.All("wpLoginattempt").Click
End Sub

veya

Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
If Right$(WebBrowser1.LocationURL, 6) = "Log+in" Then _
WebBrowser1.Document.All("wpLoginattempt").Click
End Sub

Sayfaları düzenleme[değiştir]

Vikilerde herhangi bir maddede değişiklik yapabilmek için ilk önce maddenin olduğu sayfaya girilir ve değiştir sekmesi tıklanarak sayfa kaynağına ulaşılır. Ancak bot programınız bundan farklı olarak doğrudan doğruya kaynağa girebilir ve bu daha kısa zamanda daha çok değişiklik yapmanıza olanak sağlar.

WebBrowser1.Navigate "http://tr.wiktionary.org/w/index.php?title=" & madde_adı & "&action=edit"

Ancak yukarıdaki madde adı içerisinde Türkçe karakter bulunması halinde örneğin siz kağıt maddesine ulaşmaya çalışırken karşınıza kaðýt diye bir madde çıkabilir. İşte bu durumu bertaraf edebilmek için aşağıdaki kodu kullanabilirsiniz:

d$ = "madde_adı"

For x = 1 To Len(d$)
C$ = Mid$(d$, x, 1)
If C$ = "ş" Then C$ = "%C5%9F"
If C$ = "ğ" Then C$ = "%C4%9F"
If C$ = "ı" Then C$ = "%C4%B1"
If C$ = "ç" Then C$ = "%C3%A7"
If C$ = "ö" Then C$ = "%C3%B6"
If C$ = "ü" Then C$ = "%C3%BC"
If C$ = "Ş" Then C$ = "%C5%9E"
If C$ = "Ğ" Then C$ = "%C4%9E"
If C$ = "İ" Then C$ = "%C4%B0"
If C$ = "Ç" Then C$ = "%C3%87"
If C$ = "Ö" Then C$ = "%C3%96"
If C$ = "Ü" Then C$ = "%C3%9C"
E$ = E$ + C$
Next x
WebBrowser1.Navigate "http://tr.wiktionary.org/w/index.php?title=" & E$ & "&action=edit"

Yukarıda maddenin değiştir sekmesinin adresini açmak için WebBrowser bileşenine girdik. Sayfa üzerinde değişiklik yapmak bu sayfanın yüklenmesinden sonra mümkün olabilir. Bunun için WebBrowser bileşeninin DocumentComplete olayına aşağıdaki gibi bir kod yazabilirsiniz:

If Right$(WebBrowser1.LocationURL, 4) = "edit" Then 'Düzenle sekmesi açılmış ise


......
End If

Sayfada maddenin kaynağını görmek ve değiştirmek için kullanılan metin kutusunun içeriğini değiştirmek için aşağıdaki kod kullanılabilir:

WebBrowser1.Document.Forms(0).Item("wpTextbox1").Value = İçerik

Küçük değişiklik[değiştir]

Eğer küçük değişiklikler yapıyorsanız aşağıdaki kodu kullanarak Küçük değişiklikler kutucuğunu işaretletebilirsiniz:

WebBrowser1.Document.All("wpMinoredit").Clicks

Sayfayı kaydetme[değiştir]

Aşağıdaki kod ile sayfa kaydedilir:

WebBrowser1.Document.All("wpSave").Click

Not: Bot oluşturma ile ilgili daha ayrıntılı bilgi için İngilizce vikipedideki Creating a bot maddesine bakabilirsiniz.