Vb Web Kaynak Kodu Çekmek
-
hocam sadece bana herhangi bir sitenin form yapısını çekip bir label'e yazdıran bir örnek gerek.. Yardım ederseniz teşekkür ederim
-
form yapısından tam kastın ne.
mesela buradaki ip adresini almam yeterli mi?
<div id="ip"> Your IP Address Is: 88.xx.xx.xx<span class="60">.</span>2<span id="50">1</span><label id="122">.</label>142 <!--Do not scrape your IP from here, go to http://www.whatismyip.com/faq/automation.asp for more information on our automation rules.--> <div id="noproxy">No Proxy Detected</div><br> </div>
-
Bunu yapabilirseniz size çok minnettar olurum :I
-
3 yolla yaptım
Hedef: www.whatismyip.com
Alan:
<div id="ip"> Your IP Address Is: 88.xx.xx.xx<span class="60">.</span>2<span id="50">1</span><label id="122">.</label>142 <!--Do not scrape your IP from here, go to http://www.whatismyip.com/faq/automation.asp for more information on our automation rules.--> <div id="noproxy">No Proxy Detected</div><br> </div>
1- webbrowser kullanılanlar: webbrowser , ismi WebBrowser1 , buton, ismi Button1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load WebBrowser1.Navigate(("http://www.whatismyip.com/")) End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim elem As HtmlElement = WebBrowser1.Document.GetElementById("ip") MessageBox.Show(elem.InnerText) End Sub
2- webbrowser kullanılanlar: webbrowser , ismi WebBrowser1 , buton, ismi Button2
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load WebBrowser1.Navigate(("http://www.whatismyip.com/")) End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Dim elems As HTMLElementCollection = WebBrowser1.Document.GetElementsByTagName("div") For Each elem2 As HtmlElement In elems If elem2.Id = "ip" Then MessageBox.Show(elem2.InnerText) Exit For End If Next End Sub
3- webrequest-response, kullanılanlar mshtml, projene sağ tıklayıp add reference e tıkla oradan .net tabından Microsoft.mshtml i seçip ekle.
Not: bunu diğerleriyle aynı projede kullanma çünkü mshtml in htmlelementcollection i ile webbrowserin ki karışıyor.
Imports System.Net Imports System.IO Imports mshtml Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim IpNedir As String = IPAl() MessageBox.Show(IpNedir) End Sub Function IPAl() As String Dim kaynak As String Dim req As HttpWebRequest = WebRequest.Create("http://www.whatismyip.com/") req.AllowAutoRedirect = False req.UserAgent = "Mozilla/5.0 (Windows NT 6.1 WOW64 rv:12.0) Gecko/20100101 Firefox/12.0" req.Accept = "text/html,application/xhtml+xml,application/xmlq=0.9,*/*q=0.8" req.Headers(HttpRequestHeader.AcceptLanguage) = "ru,enq=0.8,en-usq=0.5,ukq=0.3" req.Headers(HttpRequestHeader.AcceptEncoding) = "gzip, deflate" req.KeepAlive = True req.Timeout = 20000 req.AutomaticDecompression = DecompressionMethods.GZip Or DecompressionMethods.Deflate Dim response As HttpWebResponse = req.GetResponse() Dim sr As StreamReader sr = New StreamReader(response.GetResponseStream) kaynak = sr.ReadToEnd sr.Close() Return IpDonder(kaynak) End Function Private Function IpDonder(ByVal kaynak As String) As String Dim htmlDocument As IHTMLDocument2 = New HTMLDocumentClass() htmlDocument.write(kaynak) htmlDocument.close() Dim allElements As IHTMLElementCollection = htmlDocument.body.all Dim allInputs As IHTMLElementCollection = allElements.tags("div") Dim element As IHTMLElement For Each element In allInputs If (element.id = "ip") Then Return element.innerText Next Return "Boş Ip" End Function
req.UserAgent = "Mozilla/5.0 (Windows NT 6.1 WOW64 rv:12.0) Gecko/20100101 Firefox/12.0"
unbalanced tarafından 13/Eyl/12 01:38 tarihinde düzenlenmiştir
bu ve altındak kodları neden yazdım diye sorarsan site banlamış bu şekilde yönlendirmeyi. o yüzden sanki browserdan giriyormuş gibi gösterdim. -
Çok teşekkür ederim hocam...