Парсить сайт через GET получается и вроде ничего сложного, но от такого парсинга толку ноль, т.к. нужные данные еще не сформированы.
В общем, есть сайт: http://www.ahunter.ru/
На главной странице в верхней форме пишу текст, например: санкт-петербург, невский, д.1
Нажимаю кнопку "найти", после чего слева появляется фиолетовый блок с результатом - индекс по данному адресу.
Вот этот индекс я и хочу спарсить, предварительно отправив запрос с нужным адресом.
Код, который я смог написать своими силами:
- Код: Выделить всё
Dim myHttpWebRequest As HttpWebRequest = HttpWebRequest.Create("http://www.ahunter.ru/site/search")
Dim sCookies As String
myHttpWebRequest.Method = "POST"
myHttpWebRequest.Host = "www.ahunter.ru"
myHttpWebRequest.Referer = "http://www.ahunter.ru/site/search"
myHttpWebRequest.UserAgent = "Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0"
myHttpWebRequest.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
myHttpWebRequest.Headers.Add("Accept-Language", "ru")
myHttpWebRequest.ContentType = "application/x-www-form-urlencoded"
Dim sQueryString As String = "text_to_process=%F1%E0%ED%EA%F2-%EF%E5%F2%E5%F0%E1%F3%F0%E3%2C+%F1%E2%E5%F2%EB%E0%ED%EE%E2%F1%EA%E8%E9+%EF%F0.+%E4+72"
Dim ByteArr As Byte() = System.Text.Encoding.GetEncoding(1251).GetBytes(sQueryString)
myHttpWebRequest.ContentLength = ByteArr.Length()
myHttpWebRequest.GetRequestStream().Write(ByteArr, 0, ByteArr.Length)
Dim myHttpWebResponse As HttpWebResponse = myHttpWebRequest.GetResponse()
myHttpWebResponse = myHttpWebRequest.GetResponse()
If Not String.IsNullOrEmpty(myHttpWebResponse.Headers("Set-Cookie")) Then
sCookies = myHttpWebResponse.Headers("Set-Cookie")
End If
myHttpWebRequest = HttpWebRequest.Create("http://www.ahunter.ru/site/search")
myHttpWebRequest.Method = "GET"
myHttpWebRequest.Headers.Add(HttpRequestHeader.Cookie, sCookies)
myHttpWebRequest.Host = "www.ahunter.ru"
myHttpWebRequest.UserAgent = "Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0"
myHttpWebRequest.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
myHttpWebRequest.Headers.Add("Accept-Language", "ru")
myHttpWebRequest.AllowAutoRedirect = False 'отключаем редирект
myHttpWebResponse = myHttpWebRequest.GetResponse()
Dim myStreamReader As New StreamReader(myHttpWebResponse.GetResponseStream, Encoding.GetEncoding(1251))
Dim HtmlWeb = New HtmlDocument()
HtmlWeb.Load(myStreamReader)
Dim MainText = HtmlWeb.DocumentNode.SelectNodes("//div")
For Each i In MainText
Dim текст As String = i.InnerText
RichTextBox1.AppendText(текст & vbCrLf)
Next i
myHttpWebResponse.Close() 'закрываем соединение
MainText = Nothing
HtmlWeb = Nothing
Помогите, пожалуйста, доделать код.