Member 14954903 Ответов: 1

Httpwebrequest .NET получение определенного текста


Я пытаюсь получить текст с сайта более конкретно, по названию тега
<h2>

все, что я пробовал, пока не удавалось.

Что я уже пробовал:

Dim webrewq As Net.HttpWebRequest = Net.WebRequest.Create(url)
webrewq.Timeout = 60000
webrewq.Method = "GET"
Dim hwresponse As Net.HttpWebResponse = webrewq.GetResponse()
If hwresponse.StatusCode = Net.HttpStatusCode.OK Then
    Dim responseStream As IO.StreamReader = New IO.StreamReader(hwresponse.GetResponseStream())
    Label1.Text = responseStream.ReadLine()
    responseStream.Close()
End If

Richard MacCutchan

Так что же происходит?

Member 14954903

Прямо сейчас этот код просто дает мне весь исходный код страницы но мне нужен только внутренний текст этого тега

Richard MacCutchan

Конечно, это так, потому что именно это возвращает операция GET. Если вы хотите извлечь определенную часть, то вам нужно добавить код для поиска по возвращаемому тексту.

1 Ответов

Рейтинг:
2

OriginalGriff

Вместо того чтобы делать это, взгляните на HTMLAgility pack[^] - он доступен через NuGet в VS - если вы делаете что-то с веб-скребком, это делает вашу жизнь намного проще:

HtmlWeb web = new HtmlWeb();
HtmlAgilityPack.HtmlDocument doc = web.Load(url);
string title = doc.DocumentNode.SelectSingleNode("//title").InnerText;
HtmlNodeCollection h2Nodes = doc.DocumentNode.SelectNodes("//h2]");
HtmlNodeCollection divNodes = doc.DocumentNode.SelectNodes("//div[@class='pre-action-link']);
Или если вы должны использовать VB:
Dim web As HtmlWeb = New HtmlWeb()
Dim doc As HtmlAgilityPack.HtmlDocument = web.Load(url)
Dim title As String = doc.DocumentNode.SelectSingleNode("//title").InnerText
Dim h2Nodes As HtmlNodeCollection = doc.DocumentNode.SelectNodes("//h2]")
Dim divNodes As HtmlNodeCollection = doc.DocumentNode.SelectNodes("//div[@class='pre-action-link']);")
Взгляните на документацию - она действительно может сделать вашу жизнь лучше!


Member 14954903

Большое спасибо! Я займусь этим делом.

OriginalGriff

Всегда пожалуйста!