1

ウィキペディアのテーブルから各シーズンのシーズン数とエピソード数を 2 つのコンボ ボックスに何らかの方法でコピーする必要があります。1 つはシーズン用、もう 1 つはエピソード用です。ユーザーが上部の入力ボックスにお気に入りの番組を入力できるようにするアプリ。次に、最初のコンボ ボックスにシーズン数を入力します。ユーザーがシーズン数を選択すると、関連するエピソード数が表示されます。

シーズン数と各シーズンのエピソード数の表へのリンク: http://en.wikipedia.org/wiki/List_of_House_episodes#Series_overview_and_ratings

コード:

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
4

1 に答える 1

0

このコードは、サイト内のテーブルのコンテンツを取得してページに表示します。探している詳細を取得するために、テーブルを介して対話するための追加のコードを追加できます。

' 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
于 2012-12-18T15:34:29.440 に答える