Как скопировать информацию из таблицы Википедии в поля со списком? Visual Basic.Net
Нужно как-то скопировать количество сезонов и эпизодов в каждом сезоне из таблицы Википедии в два поля со списком. Один для сезонов, другой для эпизодов. Приложения, которые должны позволять пользователю печатать свое любимое шоу в верхнем поле ввода. Затем заполните первое поле со списком с количеством сезонов, и когда пользователь выбирает один из них, отображается соответствующее количество эпизодов.
Ссылка на таблицу с указанием количества сезонов и количества эпизодов в каждом сезоне: http://en.wikipedia.org/wiki/List_of_House_episodes
код:
Public Class Form1
Dim Search As String
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
Search = TextBox1.Text
Search = Search.Replace(" ", "+")
Search = "http://www.google.com/search?btnI=I'm+Feeling+Lucky&q=" & Search & "episode+list+wikipedia"
If Asc(e.KeyChar) = 13 Then
WebBrowser1.Navigate(Search)
TextBox1.Text = Search
End If
End Sub
End Class
До сих пор я узнал, как загрузить исходный код страницы, даже немного манипулируя страницей, но я не знаю, как использовать это, чтобы получить количество сезонов и эпизодов в каждом сезоне в комбинированных списках. Любая помощь будет большой спасибо
Код:
Imports System.Text.RegularExpressions
Public Class Form1
Dim sourcecode As String
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
sourcecode = ((New Net.WebClient).DownloadString("http://en.wikipedia.org/wiki/List_of_House_episodes#Series_overview_and_ratings "))
Dim Code As String
Dim Information As MatchCollection = Regex.Matches(sourcecode, "<td>(.*?)</td>", RegexOptions.None)
For Each Info In Information
Code = Regex.Replace(Info.ToString, "td>", "", RegexOptions.None)
Code = Regex.Replace(Code, "</td>", "", RegexOptions.None)
MsgBox(Code)
Next
End Sub
End Class
1 ответ
Этот код захватывает содержимое таблиц на сайте и представляет их на странице. Вы можете добавить некоторый дополнительный код для объединения таблиц, чтобы получить детали, которые вы ищете.
' Create a request for the URL.
Dim request As WebRequest = WebRequest.Create("http://en.wikipedia.org/wiki/List_of_House_episodes#Series_overview_and_ratings")
' If required by the server, set the credentials.
request.Credentials = CredentialCache.DefaultCredentials
' Get the response.
Dim response__1 As HttpWebResponse = DirectCast(request.GetResponse(), HttpWebResponse)
' Display the status.
Console.WriteLine(response__1.StatusDescription)
' Get the stream containing content returned by the server.
Dim dataStream As Stream = response__1.GetResponseStream()
' Open the stream using a StreamReader for easy access.
Dim reader As New StreamReader(dataStream)
' Read the content.
Dim responseFromServer As String = reader.ReadToEnd()
' Display the content.
Console.WriteLine(responseFromServer)
' Cleanup the streams and the response.
reader.Close()
dataStream.Close()
response__1.Close()
'reads the html into an html document to enable parsing
Dim doc As IHTMLDocument2 = New HTMLDocumentClass()
doc.write(New Object() {responseFromServer})
doc.close()
'loops through each element in the document to check if it qualifies for the attributes to be set
For Each el As IHTMLElement In DirectCast(doc.all, IHTMLElementCollection)
' check to see if all the desired attributes were found with the correct values
Dim qualify As Boolean = True
If el.tagName = "TABLE" Then
Dim meta As HTMLTableClass = DirectCast(el, HTMLTableClass)
Response.Write(el.outerHTML)
End If
Next