Excel Forum

Excel Forum (http://www.excel.web.tr/index.php)
-   Makro-VBA (http://www.excel.web.tr/forumdisplay.php?f=48)
-   -   Java Kodlu Siteden (UYAP) Makro İle Veri Çekmek (http://www.excel.web.tr/showthread.php?t=168037)

simplemnt 10-11-2017 09:18

Java Kodlu Siteden (UYAP) Makro İle Veri Çekmek
 
Merhaba,

UYAP'tan macro ile veri almak istiyorum. Ancak java tabanlı olduğu için yapamadım. çok bilgili değilim bu konularda o yüzden anlatımım için kusura bakmayın. Normal web sitelerinde sayfalar, alan ve bilgiler sabitken, Uyap'ta farklı menüler için adres bar hiç değişmiyor, menüde bir ekrana tıkladığımda kendi içerisinde bir tab açıyor. Bu sayfanın source koduna baktığımda olası her sayfa ve alan kodun içinde mevcut ama bir text gönderip onun karşılığı sorgu sonucunu almayı başaramadım.

Örneğin; UYAP > Vatandaş Portalı > Telefon No Sorgulama ekranında birim adı "İZMİR" verip ekrana gelen 3 satır kaydı almak istiyorum.

E-devlet şifreniz varsa bu üstte yazdığım sayfadaki veriyi nasıl alabileceğim konusunda yardımcı olabilir misiniz? Şimdiden çok teşekkürler.


Not: Uyap'a şifrem ile (kendim manuel olarak) bağlandıktan sonra açık sayfadayken macro çalışsın yeterli. Bu yüzden login kısmını atlıyorum.

simplemnt 13-11-2017 09:03

Tekrar merhaba, bir örnek ile anlatırsam daha kolay olacak benim açımdan. Aşağıdaki kodla TAPDK'nın sitesinden sorgu yapıp sonucu alabiliyorum. Ama bu sitede TXT_TCK alanı, http://212.174.130.210/NewTapdk/ViewApp/sorgu.aspx içerisinde sabit. Bu alana TCKN yapıştırıp veriyi alabiliyorum. UYAP'ta ise bir menüye tıkladığımda yeni bir sayfa açmıyor (adres barında değişiklik olmuyor) sayfa içinde bir tab yaratıyor (source kodda'da "iframe" ile başlayan kod ekleniyor), o taba macro ile nasıl gideceğimi, tam olarak hangi kodla adresleyeceğimi bilemedim. Ayrıca, çıkan sonuçları alttaki "GridView1" ile alıp alamayacağımı da bilmiyorum, ekte resimdeki "table" daki verileri almak istiyorum.

Alttaki kodda biraz oynama yaparak çözebilir miyim, yoksa java olduğu için farklı bir yöntemle mi denemeliyim?


https://hizliresim.com/Dy5aAO


Dim IE As Object
Dim HTML_Body As Object, HTML_Tables As Object, MyTable As Object

On Error Resume Next
Const READYSTATE_COMPLETE = 4

Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = False 'True

IE.Navigate "http://212.174.130.210/NewTapdk/ViewApp/sorgu.aspx"
Do
Loop While IE.Busy Or IE.ReadyState <> READYSTATE_COMPLETE

IE.document.all("TXT_TCK").Value = "TCKİMLİKNOBİLGİSİ" 'TCKN No yazılmalıdır.

Set inp = IE.document.getElementsByTagName("input")
For Each itm In inp
If itm.Type = "image" And itm.Name = "Button_Search" Then
itm.Select
itm.Click
End If
Next itm
Do
Loop While IE.Busy Or IE.ReadyState <> READYSTATE_COMPLETE

k = 2
For x = 1 To IE.document.getElementByID("GridView1").Rows.Lengt h - 1
Range("D" & k).Value = IE.document.getElementByID("GridView1").Rows(x).Ce lls(1).innertext
Range("E" & k).Value = IE.document.getElementByID("GridView1").Rows(x).Ce lls(2).innertext
Range("F" & k).Value = IE.document.getElementByID("GridView1").Rows(x).Ce lls(3).innertext
Range("G" & k).Value = IE.document.getElementByID("GridView1").Rows(x).Ce lls(4).innertext
Range("H" & k).Value = IE.document.getElementByID("GridView1").Rows(x).Ce lls(5).innertext
Range("I" & k).Value = IE.document.getElementByID("GridView1").Rows(x).Ce lls(6).innertext
Range("J" & k).Value = IE.document.getElementByID("GridView1").Rows(x).Ce lls(7).innertext
Range("K" & k).Value = IE.document.getElementByID("GridView1").Rows(x).Ce lls(8).innertext
Range("L" & k).Value = IE.document.getElementByID("GridView1").Rows(x).Ce lls(9).innertext
k = k + 1
Next x

Set inp = IE.document.getElementsByTagName("input")
For Each itm In inp
If itm.Type = "image" And itm.Name = "Button_ClearForm" Then
itm.Select
itm.Click
End If
Next itm
Do
Loop While IE.Busy Or IE.ReadyState <> READYSTATE_COMPLETE



https://hizliresim.com/Dy5aAO

arcilingir 13-11-2017 15:36

B1 hücresine ARANACAK kelime girilecek
kodlardaki bu alanlara kendi bilgilerinizi giriniz
IE.document.all("tridField").Value = "TCKİMLİK"
IE.document.all("egpField").Value = "ŞİFRE"



Sub UYAP2()

Dim IE As Object
Dim HTML_Body As Object, HTML_Tables As Object, MyTable As Object

On Error Resume Next
Const READYSTATE_COMPLETE = 4

Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = True

Range("D1:G20").ClearContents

IE.navigate "https://vatandas.uyap.gov.tr/vatandas/giris.jsp"
Do
Loop While IE.Busy Or IE.ReadyState <> READYSTATE_COMPLETE
'Application.Wait Now + TimeValue("00:00:01")

For Each l In IE.document.getElementsByTagName("a")
If l.ClassName = "btn red-flamingo" Then
l.Click
Exit For
End If
Next
Do
Loop While IE.Busy Or IE.ReadyState <> READYSTATE_COMPLETE
Application.Wait Now + TimeValue("00:00:01")


IE.document.all("tridField").Value = "TCKİMLİK"
IE.document.all("egpField").Value = "ŞİFRE"

Set inp = IE.document.getElementsByTagName("input")
For Each itm In inp
If itm.Type = "submit" And itm.Name = "submitButton" Then
itm.Select
itm.Click
End If
Next itm
Do
Loop While IE.Busy Or IE.ReadyState <> READYSTATE_COMPLETE


IE.navigate "https://vatandas.uyap.gov.tr/jsp/vatandas_jsp/birim_tel_sorgulama.jsp?v=2017"
Do
Loop While IE.Busy Or IE.ReadyState <> READYSTATE_COMPLETE


IE.document.all("ba").Value = Range("B1").Value

Set inp = IE.document.getElementsByTagName("input")
For Each itm In inp
If itm.Type = "button" And itm.Name = "submit" Then
itm.Select
itm.Click
End If
Next itm
Do
Loop While IE.Busy Or IE.ReadyState <> READYSTATE_COMPLETE

Application.Wait Now + TimeValue("00:00:02")

son = 1
j = 3

Set Rky = IE.document.getElementsByTagName("TABLE")
For Each tbl In Rky
' If tbl.ID = "" Then
For Each tr In tbl.Rows
For Each td In tr.Cells
Sheets("Sayfa1").Cells(son, j + 1) = td.innerText
j = j + 1
Next td
son = son + 1
j = 3
Next tr
' End If
'son = son + 1
Next tbl

Application.Wait Now + TimeValue("00:00:02")

'bir = IE.document.getElementById("kayitlar").getElements ByTagName("TR")(0).getElementsByTagName("TD")(1).i nnerText
'MsgBox bir

End Sub

simplemnt 13-11-2017 15:56

arcilingir hocam çok teşekkür ederim. Elinize sağlık.


Saat 12:17

Powered by vBulletin Version 3.7.2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.