IronWebScraper 方法 オンライン映画サイトのスクレイピング C#とIronWebscraperを使ってオンライン映画サイトをスクレイピングする カーティス・チャウ 更新日:1月 10, 2026 IronWebScraper をダウンロード NuGet ダウンロード DLL ダウンロード 無料トライアル LLM向けのコピー LLM向けのコピー LLM 用の Markdown としてページをコピーする ChatGPTで開く このページについてChatGPTに質問する ジェミニで開く このページについてGeminiに問い合わせる Grokで開く このページについてGrokに質問する 困惑の中で開く このページについてPerplexityに問い合わせる 共有する Facebook で共有 Xでシェア(Twitter) LinkedIn で共有 URLをコピー 記事をメールで送る This article was translated from English: Does it need improvement? Translated View the article in English IronWebscraperは、HTML要素を解析し、構造化されたデータストレージのために型付きオブジェクトを作成し、包括的な映画情報データセットを構築するためにメタデータを使用してページ間をナビゲートすることによって、ウェブサイトから映画データを抽出します。 この C# Web Scraper ライブラリは、構造化されていない Web コンテンツを整理された分析可能なデータに変換することを簡素化します。 クイックスタート: C#でムービーをスクレイピング 1.NuGetパッケージマネージャ経由でIronWebscraperをインストールする 2.WebScraperを継承するクラスを作成する。 3.ライセンスを設定し、ターゲットURLを要求するために、Init()をオーバーライドします。 4.Parse()をオーバーライドして、CSSセレクタを使用してムービーデータを抽出する。 5.JSON形式でデータを保存するには、Scrape()メソッドを使用してください。 今すぐ NuGet で PDF を作成してみましょう: NuGet パッケージ マネージャーを使用して IronWebScraper をインストールします PM > Install-Package IronWebScraper このコード スニペットをコピーして実行します。 using IronWebScraper; using System; public class QuickstartMovieScraper : WebScraper { public override void Init() { // Set your license key License.LicenseKey = "YOUR-LICENSE-KEY"; // Configure scraper settings this.LoggingLevel = LogLevel.All; this.WorkingDirectory = @"C:\MovieData\Output\"; // Start scraping from the homepage this.Request("https://example-movie-site.com", Parse); } public override void Parse(Response response) { // Extract movie titles using CSS selectors foreach (var movieDiv in response.Css(".movie-item")) { var title = movieDiv.Css("h2")[0].TextContentClean; var url = movieDiv.Css("a")[0].Attributes["href"]; // Save the scraped data Scrape(new { Title = title, Url = url }, "movies.json"); } } } // Run the scraper var scraper = new QuickstartMovieScraper(); scraper.Start(); 実際の環境でテストするためにデプロイする 今すぐ無料トライアルでプロジェクトに IronWebScraper を使い始めましょう 30日間無料トライアル どのようにムービースクレーパークラスをセットアップしますか? 実際のウェブサイトの例から始めます。 Webscraping in C# チュートリアルで説明したテクニックを使って、映画のウェブサイトをスクレイピングします。 新しいクラスを追加しMovieScraperと名付けます: 専用のスクレーパークラスを作成することで、コードを整理し、再利用可能にすることができます。 このアプローチは、オブジェクト指向の原則に従い、後で簡単に機能を拡張することができます。 ターゲットとなるウェブサイトの構造はどのようなものですか? スクレイピングのためにサイト構造を調べます。 効果的なウェブスクレイピングには、ウェブサイトの構造を理解することが重要です。 オンライン映画ウェブサイトからのスクレイピングのガイドと同様に、最初にHTML構造を分析します: . どの HTML 要素にムービー データが含まれていますか? これは、ウェブサイト上で見られるホームページのHTMLの一部です。HTMLの構造を調べることで、使用すべき正しいCSSセレクタを特定することができます: <div id="movie-featured" class="movies-list movies-list-full tab-pane in fade active"> <div data-movie-id="20746" class="ml-item"> <a href="https://website.com/film/king-arthur-legend-of-the-sword-20746/"> <span class="mli-quality">CAM</span> <img data-original="https://img.gocdn.online/2017/05/16/poster/2116d6719c710eabe83b377463230fbe-king-arthur-legend-of-the-sword.jpg" class="lazy thumb mli-thumb" alt="King Arthur: Legend of the Sword" src="https://img.gocdn.online/2017/05/16/poster/2116d6719c710eabe83b377463230fbe-king-arthur-legend-of-the-sword.jpg" style="display: inline-block;"> <span class="mli-info"><h2>King Arthur: Legend of the Sword</h2></span> </a> </div> <div data-movie-id="20724" class="ml-item"> <a href="https://website.com/film/snatched-20724/"> <span class="mli-quality">CAM</span> <img data-original="https://img.gocdn.online/2017/05/16/poster/5ef66403dc331009bdb5aa37cfe819ba-snatched.jpg" class="lazy thumb mli-thumb" alt="Snatched" src="https://img.gocdn.online/2017/05/16/poster/5ef66403dc331009bdb5aa37cfe819ba-snatched.jpg" style="display: inline-block;"> <span class="mli-info"><h2>Snatched</h2></span> </a> </div> </div> <div id="movie-featured" class="movies-list movies-list-full tab-pane in fade active"> <div data-movie-id="20746" class="ml-item"> <a href="https://website.com/film/king-arthur-legend-of-the-sword-20746/"> <span class="mli-quality">CAM</span> <img data-original="https://img.gocdn.online/2017/05/16/poster/2116d6719c710eabe83b377463230fbe-king-arthur-legend-of-the-sword.jpg" class="lazy thumb mli-thumb" alt="King Arthur: Legend of the Sword" src="https://img.gocdn.online/2017/05/16/poster/2116d6719c710eabe83b377463230fbe-king-arthur-legend-of-the-sword.jpg" style="display: inline-block;"> <span class="mli-info"><h2>King Arthur: Legend of the Sword</h2></span> </a> </div> <div data-movie-id="20724" class="ml-item"> <a href="https://website.com/film/snatched-20724/"> <span class="mli-quality">CAM</span> <img data-original="https://img.gocdn.online/2017/05/16/poster/5ef66403dc331009bdb5aa37cfe819ba-snatched.jpg" class="lazy thumb mli-thumb" alt="Snatched" src="https://img.gocdn.online/2017/05/16/poster/5ef66403dc331009bdb5aa37cfe819ba-snatched.jpg" style="display: inline-block;"> <span class="mli-info"><h2>Snatched</h2></span> </a> </div> </div> HTML ムービーID、タイトル、詳細ページへのリンクがあります。 各ムービーは、ml-itemクラスのdiv要素に含まれ、識別のために固有のdata-movie-id属性を含んでいます。 基本的なムービースクレイピングを実装するには? このデータセットのスクレイピングを開始します。 スクレイパーを実行する前に、以下に示すようにライセンスキーが適切に設定されていることを確認してください: ```csharp public class MovieScraper : WebScraper { public override void Init() { // Initialize scraper settings License.LicenseKey = "LicenseKey"; this.LoggingLevel = WebScraper.LogLevel.All; this.WorkingDirectory = AppSetting.GetAppRoot() + @"\MovieSample\Output\"; // Request homepage content for scraping this.Request("www.website.com", Parse); } public override void Parse(Response response) { // Iterate over each movie div within the featured movie section foreach (var div in response.Css("#movie-featured > div")) { if (div.Attributes["class"] != "clearfix") { var movieId = Convert.ToInt32(div.GetAttribute("data-movie-id")); var link = div.Css("a")[0]; var movieTitle = link.TextContentClean; // Scrape and store movie data as key-value pairs Scrape(new ScrapedData() { { "MovieId", movieId }, { "MovieTitle", movieTitle } }, "Movie.Jsonl"); } } } } ``` ### 作業ディレクトリ プロパティは何のためですか? *このコードの新機能は何ですか*? Working Directoryプロパティは、すべてのスクレイピングデータと関連ファイルのメイン作業ディレクトリを設定します。 これにより、すべての出力ファイルが単一の場所に整理され、大規模なスクレイピングプロジェクトの管理が容易になります。 ディレクトリが存在しない場合は、自動的に作成されます。 ### どのような場合に CSS セレクタと属性を使い分ける必要がありますか? *その他の考慮事項* CSSセレクタは、構造的な位置やクラス名で要素をターゲットにする場合に理想的ですが、IDやカスタムデータ属性のような特定の値を抽出するには、属性への直接アクセスが適しています。 この例では、CSSセレクタ(`#movie-featured > div`)を使ってDOM構造をナビゲートし、属性(`data-movie-id`)を使って特定の値を抽出しています。 ## スクレイピングされたデータ用に型付きオブジェクトを作成するにはどうすればよいですか? スクレイピングされたデータをフォーマットされたオブジェクトに保持するための型付きオブジェクトを構築する。 強く型付けされたオブジェクトを使用することで、より良いコード構成、インテリセンスのサポート、コンパイル時の型チェックを提供します。 フォーマットされたデータを保持する `Movie` クラスを実装してください: ```csharp public class Movie { public int Id { get; set; } public string Title { get; set; } public string URL { get; set; } } ``` ### 型付きオブジェクトの使用はどのようにデータ整理を改善しますか? 汎用の`ScrapedData`辞書の代わりに、型付き`Movie`クラスを使用するようにコードを更新してください: ```csharp public class MovieScraper : WebScraper { public override void Init() { // Initialize scraper settings License.LicenseKey = "LicenseKey"; this.LoggingLevel = WebScraper.LogLevel.All; this.WorkingDirectory = AppSetting.GetAppRoot() + @"\MovieSample\Output\"; // Request homepage content for scraping this.Request("https://website.com/", Parse); } public override void Parse(Response response) { // Iterate over each movie div within the featured movie section foreach (var div in response.Css("#movie-featured > div")) { if (div.Attributes["class"] != "clearfix") { var movie = new Movie { Id = Convert.ToInt32(div.GetAttribute("data-movie-id")) }; var link = div.Css("a")[0]; movie.Title = link.TextContentClean; movie.URL = link.Attributes["href"]; // Scrape and store movie object Scrape(movie, "Movie.Jsonl"); } } } } ``` ### スクレイプメソッドは型付きオブジェクトに対してどのようなフォーマットを使用しますか? *新着情報* 1.私たちは、スクレイピングされたデータを保持するために`Movie`クラスを実装し、型の安全性とより良いコード構成を提供しました。 2.ムービーオブジェクトを`Scrape`メソッドに渡すと、メソッドは私たちのフォーマットを理解し、以下のように定義された方法で保存します: 出力は自動的にJSON形式にシリアライズされるため、データベースや他のアプリケーションに簡単にインポートできます。 詳細なムービーページをスクレイピングするには? より詳細なページのスクレイピングを開始します。 複数ページのスクレイピングは一般的な要件であり、IronWebScraperはリクエスト・チェイニング・メカニズムによってそれを簡単にします。 ### 詳細ページからどのような追加データを抽出できますか? ムービーページはこのようになっており、各作品に関する豊富なメタデータが含まれています: Guardians of the Galaxy Vol. 2 Set to the backdrop of Awesome Mixtape #2, Marvel's Guardians of the Galaxy Vol. 2 continues the team's adventures as they travel throughout the cosmos to help Peter Quill learn more about his true parentage. Genre: Action, Adventure, Sci-Fi Actor: Chris Pratt, Zoe Saldana, Dave Bautista Director: James Gunn Country: United States Duration: 136 min Quality: CAM Release: 2017 IMDb: 8.3