0

HTML Agility Pack パーサーにフィードできるように、自分の ASPX ページをスクレイピングしようとしています。私はあらゆる方法を試しましたが、このインスタンスで機能するのは文字列だけです。

次のコードを使用して、外側のコントロールを文字列に変換しています。

    static string ConvertControlToString(Control ctl)
    {
        string s = null;

        var sw = new StringWriter();
        using (var w = new HtmlTextWriter(sw))
        {
            ctl.RenderControl(w);
            s = sw.ToString();
        }
        return s;
    }

いくつかの厄介な不具合を除いて、コンセプトは機能します。「コントロールは runat=server を持つフォーム内にある必要があります」というメッセージが表示されることがあります。ボタン、更新パネルなど、ポストバックを引き起こすコントロールによってトリガーされるようです。

明確にするために、私のページはフォームにあるので、それは問題ではありません。

HTML アジリティ パック パーサーを別の方法で動作させるか、コードをエラーなしで文字列に変換するか、問題の解決策を試して解決する必要があります。それは問題ではありません-私は物事を機能させる必要があるだけです。

4

1 に答える 1