VB ile wikibot yazmanın temelleri

Vikikitap, açık-kaynak kitap derlemeleri

Git ve: kullan, ara

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

Konu başlıkları

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

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

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

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

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

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

[değiştir] Sayfayı kaydetme

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.

Koleksiyonum
  • Sayfa ekle
  • Collections help