JavaScript Web サイトを効率的にスクレイピングする

Linda Hamilton
リリース: 2024-11-20 01:12:03
オリジナル
957 人が閲覧しました

Effizientes Scrapen von JavaScript-Webseiten

Web クローリングに JavaScript を使用する可能性

静的 Web サイト: Axios と Cheerio
JavaScript を使用して静的 e コマース Web サイトをクロールする手順を見てみましょう。この例では、HTTP リクエスト用の Axios と HTML 解析用の Cheerio という 2 つの一般的なライブラリを使用します。

*1.依存関係をインストールします *
npm:

を使用して Axios と Cheerio をインストールします。 npm install axios Cherio

*2.スクリプトの作成 *
JavaScript ファイルを作成します。 B.Ecommerce.js をスクレイピングし、コード エディターで開きます。

*3.モジュールのインポート *
Axios と Cheerio をスクリプトにインポートします:

const axios = require('axios');

const チェリオ = require('チェリオ');

*4.ターゲット URL を定義 *
アクセスしたい電子商取引 Web サイトを選択します。この例では、仮想 URL http://example-ecommerce.com を使用します。これを目的の URL に置き換えます:

const url = 'http://example-ecommerce.com';

*5. HTML コンテンツを取得 *
Axios を使用して、ターゲット URL に GET リクエストを送信し、HTML コンテンツを取得します:

axios.get(url)

.then(response => {

const html = 応答.データ;

// HTML コンテンツを解析できるようになりました

})

.catch(error => {

console.error('ページの取得エラー:', error);

});

*6. HTML を解析してデータを抽出します *
Cheerio を使用して HTML コードを解析し、製品名や価格などの必要な情報を抽出します:

axios.get(url)

.then(response => {

const html = 応答.データ;

const $ = Cheerio.load(html);

const products = [];  

$('.product').each((index, element) => {  
  const name = $(element).find('.product-name').text().trim();  
  const price = $(element).find('.product-price').text().trim();  
  products.push({ name, price });  
});  

console.log(products);  
ログイン後にコピー
ログイン後にコピー

})

.catch(error => {

console.error('ページの取得エラー:', error);

});

*最重要ポイント*

  • axios.get(url): GET リクエストを送信し、Promise を返します。
  • .then(response => { … }): リクエストが成功した場合、HTML コンテンツは response.data にあります。
  • cheerio.load(html): DOM を jQuery のように操作するために、HTML コンテンツを Cheerio にロードします。
  • $('.product').each((index, element) => { … }): すべての .product 要素を反復処理します。
  • $(element).find('.product-name').text().trim(): 製品名を抽出します。
  • $(element).find('.product-price').text().trim(): 商品の価格を抽出します。
  • products.push({ name, Price }): 製品情報を products 配列に追加します。
  • console.log(products): 抽出した情報を出力します。

*完全なスクリプト例: *
const axios = require('axios');

const チェリオ = require('チェリオ');

const url = 'http://example-ecommerce.com';

axios.get(url)

.then(response => {

const html = 応答.データ;

const $ = Cheerio.load(html);

const products = [];  

$('.product').each((index, element) => {  
  const name = $(element).find('.product-name').text().trim();  
  const price = $(element).find('.product-price').text().trim();  
  products.push({ name, price });  
});  

console.log(products);  
ログイン後にコピー
ログイン後にコピー

})

.catch(error => {

console.error('ページの取得エラー:', error);

});

*ランディング ページのカスタマイズ: *

  • セレクター: .product、.product-name、および .product-price セレクターは、ターゲット ページの実際の HTML 構造に適合させる必要があります。
  • 追加データ: 追加情報 (製品画像、リンク、説明など) については、対応する HTML 構造を確認してください。

JavaScriptを使用してWebサイトをスクレイピングするWebスクレイピングツール

最近、Web スクレイピングに Python、Ruby、または別のプログラミング言語が必要になった場合、Octoparse は、特に JavaScript をサポートする Web サイトにとって優れたツールです。

具体的な例を見てみましょう: 対象の Web サイトがあり、スクレイピングを開始したい場合は、まずそのサイトが JS スクレイピングに対してブロックされているかどうかを確認する必要があります。 Web サイトごとに使用する保護方法が異なるため、特にスクレイピングで期待どおりの結果が得られない場合、何かが間違っていることに気づくまでに時間がかかり、イライラする試行が必要になる場合があります。ただし、Web スクレイピング ツールを使用すると、データ抽出プロセスがスムーズに進みます。

多くの Web スクレイピング ツールは、クローラーを作成する手間を省きます。 Octoparse は、JavaScript の多いページをスクレイピングする際に特に効率的であり、Ajax を使用するページを含む Web ページの 99% からデータを抽出できます。キャプチャ解決サービスも提供します。 Octoparse は無料で使用でき、自動検出機能と、効率的なデータ抽出を可能にする 100 を超える使いやすいテンプレートを提供します。新規ユーザーも 14 日間のトライアルを利用できます。

以上がJavaScript Web サイトを効率的にスクレイピングするの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート