質問: primary.Select(r => r.GetAttributeValue("src", null)).FirstOrDefault(); ``` これはうまくいきますが、特定のサイトからHTMLを読み込もうとしたときに、わずかな量のコンテンツしか戻っていないことに気付きました(最初の10個の "投稿"または "写真"など)私は、C#のページの「下にスクロールする」ことをシミュレートすることが可能かどうか疑問に思います。 これはちょうど私がtumblrのようなサイトに行くときにプログラムでHTMLを読み込むときだけではなく、火かき棒やちょうど "ソースを見る"をチェックすると、私はすべてのコンテンツがどこかにあるだろうと思ったが、隠されている/ javascriptで挿入されているようです。実際に画面に表示されるコンテンツのみがHTMLソースに存在します。 **ですから、私の質問は、無限にページをスクロールして、そのHTMLをC#(好ましくは)で読み込むことが可能なのでしょうか?** (私はtumblrとtwitterにAPIを使うことができると知っていますが、私はHtmlAgilityPackと一緒に楽しいハッキングをしようとしています)
回答: このようなすべてのWebサイトでは、Webブラウザ(通常はヘッドレス環境では動作しません)を埋め込むのには不十分です。 その代わりに、サイトのJavaScriptを見て、ユーザーがスクロールダウンしたときにAJAXクエリがコンテンツを取得するために使用されているかどうかを確認する必要があります。 ブラウザでウェブデバッガを使用することもできます(Chromeに含まれているものなど)。これらのデバッガには通常、ページによって実行されるAJAXリクエストを検査するために使用できる「ネットワーク」枠があります。これらの要求を見ると、それらの要求をシミュレートするC#コードを書くのに十分な情報が得られるはずです。 特定のAPIが提供するあらゆるタイプのコンテンツ(JSONまたはXMLですが、ほぼ確実にHTMLではない)として、これらの要求からの応答を解析する必要があります。 (AJAX APIはあなたが使いやすいはずのデータオブジェクトを提供するのに対し、これはディスプレイ指向のHTMLを解析する必要がなくなるので、これはあなたにとってはもっと良いかもしれません。)