【问题标题】:Cannot convert type 'string' to 'HtmlAgilityPack.HtmlDocument'?无法将类型“字符串”转换为“HtmlAgilityPack.HtmlDocument”?
【发布时间】:2010-06-11 14:42:46
【问题描述】:
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 对其进行解析?

【问题讨论】:

    标签: c# .net html-agility-pack


    【解决方案1】:

    这应该适用于 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);
    

    【讨论】:

      【解决方案2】:

      试试这个(基于this fairly old document):

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

      基本上,强制转换很少是在两种类型之间转换的正确方法——尤其是在进行解析之类的事情时。

      【讨论】:

        【解决方案3】:

        以下代码行将使用您的内容创建一个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()));
        

        【讨论】:

          【解决方案4】:

          也许您可以在文件系统中创建一个新文件 (.html),然后使用流编写器将字符串写入 html 文件。然后将该文件传递给解析器

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2018-01-13
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多