3
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using HtmlAgilityPack;

namespace sss
{
    public class Downloader
    {
        WebClient client = new WebClient();

        public HtmlDocument FindMovie(string Title)
        { 
            //This will be implemented later on, it will search movie.
        }

        public HtmlDocument FindKnownMovie(string ID)
        {
            HtmlDocument Page = (HtmlDocument)client.DownloadString(String.Format("http://www.imdb.com/title/{0}/", ID));
        }
    }
}

ダウンロードした文字列を有効な HtmlDocument に変換して、HTMLAgilityPack を使用して解析できるようにするにはどうすればよいですか?

4

4 に答える 4

6

これは v1.4 で動作するはずです:

HtmlWeb hw = new HtmlWeb();
HtmlDocument doc = hw.Load(string.Format("http://www.imdb.com/title/{0}/", ID));

また

string html = client.DownloadString(String.Format("http://www.imdb.com/title/{0}/", ID));
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(html);
于 2010-06-11T14:46:21.223 に答える
5

これを試してください(このかなり古いドキュメントに基づいています):

string url = String.Format("http://www.imdb.com/title/{0}/", ID);
string content = client.DownloadString(url);
HtmlDocument page = new HtmlDocument();
page.LoadHtml(content);

基本的に、キャストが 2 つの型の間の正しい変換方法になることはめったにありません。特に、解析などの処理が行われている場合はそうです。

于 2010-06-11T14:45:36.887 に答える
1

次のコード行はHtmlDocument、コンテンツで を作成します。

// First create a blank document
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
// Then load it with the content from the webpage you are trying to parse
doc.Load(new StreamReader(WebRequest.Create("yourURL").GetResponse()
                                 .GetResponseStream()));
于 2010-06-11T14:46:26.120 に答える
0

おそらく、ファイル システム用に新しいファイル (.html) を作成し、ストリーム ライターを使用して文字列を html ファイルに書き込むことができます。次に、そのファイルをパーサーに渡します

于 2010-06-11T14:46:10.647 に答える