0

HtmlAgilityPack を使用して多数の Web サイトの html コードをプルバックする次のコードがあります。asos.com を除けば、すべてうまくいっているようです。URL を実行すると、ランダムな文字が返されます (‹\b\0\0\0\0\0\0UÍ „ï&¾CãÁ¢ø›\bãhìÁ3-« Ziý}z'š/»ómf³Ü`]In@iÉÑbr [œ¡Ä¬v7М¶7N[GáôSv;ܰ?[†.ã*3Ž¢G×ù6OƒäwPŒõH\rÙ¸\vzìmèÎ;M›4q_K¨Ð)

    HtmlAgilityPack.HtmlDocument doc = new HtmlDocument();
    doc.OptionReadEncoding = false;
    HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("http://www.asos.com/ASOS/ASOS-Sweatshirt-With-Contrast-Ribs/Prod/pgeproduct.aspx?iid=2765751&cid=14368&sh=0&pge=0&pgesize=20&sort=-1&clr=Red");
    request.Timeout = 10000;
    request.ReadWriteTimeout = 32000;
    request.UserAgent = "TEST";
    request.Method = "GET";
    request.Accept = "text/html";
    request.AllowAutoRedirect = false;
    request.CookieContainer = new CookieContainer();
    StreamReader reader = new StreamReader(request.GetResponse().GetResponseStream(), Encoding.Default); //put your encoding            
    doc.Load(reader);

    string html = doc.DocumentNode.OuterHtml;

Fiddler を介して URL を実行しましたが、問題があることを示唆するものは何も見えません。私が間違っているアイデアはありますか?

ここでフィドラーのヘッダー画像を参照してください:http://i.stack.imgur.com/2LRFY.png

4

1 に答える 1

1

これは Html Agility Pack とは関係ありません。false に設定AllowAutoRedirectしているためです。それを削除すると、機能します。このサイトはどうやらリダイレクトを行っているようです。最終的な HTML テキストが必要な場合は、リダイレクトに従う必要があります。

Html Agility Pack には、HtmlWebファイルを次のように直接ダウンロードできるユーティリティ クラスがあることに注意してHmlDocumentください。

HtmlWeb web = new HtmlWeb();
HtmlDocument doc = web.Load(@"http://www.asos.com/ASOS/ASOS-Sweatshirt-With-Contrast-Ribs/Prod/pgeproduct.aspx?iid=2765751&cid=14368&sh=0&pge=0&pgesize=20&sort=-1&clr=Red");
于 2013-04-10T06:08:49.607 に答える