eBay、Amazon、Flipkart などの大手ストアからリアルタイムで商品データを簡単に取得できる e コマース プラットフォームを構築することを想像してください。確かに、Shopify や同様のサービスはありますが、正直に言うと、プロジェクトのためだけにサブスクリプションを購入するのは少し面倒に感じるかもしれません。そこで、これらのサイトをスクレイピングして製品をデータベースに直接保存してはどうだろうかと考えました。これは、当社の電子商取引プロジェクト用の製品を入手するための効率的かつコスト効率の高い方法となるでしょう。
Webスクレイピングとは何ですか?
Web スクレイピングには、Web ページの HTML を解析してコンテンツを読み取って収集することにより、Web サイトからデータを抽出することが含まれます。多くの場合、ブラウザの自動化やサイトへの HTTP リクエストの送信、その後 HTML 構造の分析を行って、テキスト、リンク、画像などの特定の情報を取得します。Puppeteer は、Web サイトをスクレイピングするために使用されるライブラリの 1 つです。
?パペッティアとは?
Puppeteer は Node.js ライブラリです。ヘッドレス Chrome または Chromium ブラウザを制御するための高レベル API を提供します。ヘッドレス Chrome は、UI なしですべてを実行する Chrome のバージョンです (バックグラウンドで実行するのに最適です)。
puppeteer を使用すると、次のようなさまざまなタスクを自動化できます。
- Web スクレイピング: Web サイトからコンテンツを抽出するには、ページの HTML と JavaScript を操作する必要があります。通常、CSS セレクターをターゲットにしてコンテンツを取得します。
- PDF 生成: プログラムによる Web ページの PDF への変換は、スクリーンショットを撮ってからそのスクリーンショットを PDF に変換するのではなく、Web ページから PDF を直接生成する場合に最適です。 (追記: すでに回避策がある場合は申し訳ありません)。
- 自動テスト: ボタンをクリックする、フォームに記入する、スクリーンショットを撮るなどのユーザーアクションをシミュレートすることにより、Web ページ上でテストを実行します。これにより、すべてが適切に配置されていることを確認するために長いフォームを手動で実行するという面倒なプロセスが不要になります。
?Puppetter を始めるにはどうすればよいですか?
まず、ライブラリをインストールする必要があります。先に進んでこれを行ってください。
npm の使用:
npm i puppeteer # Downloads compatible Chrome during installation. npm i puppeteer-core # Alternatively, install as a library, without downloading Chrome.
使用糸:
yarn add puppeteer // Downloads compatible Chrome during installation. yarn add puppeteer-core // Alternatively, install as a library, without downloading Chrome.
pnpm の使用:
pnpm add puppeteer # Downloads compatible Chrome during installation. pnpm add puppeteer-core # Alternatively, install as a library, without downloading Chrome.
? puppeteer の使用例を示す例
これは、Web サイトをスクレイピングする方法の例です。 (追記: このコードを使用して、電子商取引プロジェクトの Myntra Web サイトから商品を取得しました。)
const puppeteer = require("puppeteer"); const CategorySchema = require("./models/Category"); // Define the scrape function as a named async function const scrape = async () => { // Launch a new browser instance const browser = await puppeteer.launch({ headless: false }); // Open a new page const page = await browser.newPage(); // Navigate to the target URL and wait until the DOM is fully loaded await page.goto('https://www.myntra.com/mens-sport-wear?rawQuery=mens%20sport%20wear', { waitUntil: 'domcontentloaded' }); // Wait for additional time to ensure all content is loaded await new Promise((resolve) => setTimeout(resolve, 25000)); // Extract product details from the page const items = await page.evaluate(() => { // Select all product elements const elements = document.querySelectorAll('.product-base'); const elementsArray = Array.from(elements); // Map each element to an object with the desired properties const results = elementsArray.map((element) => { const image = element.querySelector(".product-imageSliderContainer img")?.getAttribute("src"); return { image: image ?? null, brand: element.querySelector(".product-brand")?.textContent, title: element.querySelector(".product-product")?.textContent, discountPrice: element.querySelector(".product-price .product-discountedPrice")?.textContent, actualPrice: element.querySelector(".product-price .product-strike")?.textContent, discountPercentage: element.querySelector(".product-price .product-discountPercentage")?.textContent?.split(' ')[0]?.slice(1, -1), total: 20, // Placeholder value, adjust as needed available: 10, // Placeholder value, adjust as needed ratings: Math.round((Math.random() * 5) * 10) / 10 // Random rating for demonstration }; }); return results; // Return the list of product details }); // Close the browser await browser.close(); // Prepare the data for saving const data = { category: "mens-sport-wear", subcategory: "Mens", list: items }; // Create a new Category document and save it to the database // Since we want to store product information in our e-commerce store, we use a schema and save it to the database. // If you don't need to save the data, you can omit this step. const category = new CategorySchema(data); console.log(category); await category.save(); // Return the scraped items return items; }; // Export the scrape function as the default export module.exports = scrape;
?説明:
- このコードでは、Puppeteer を使用して Web サイトから製品データを収集しています。詳細を抽出した後、スキーマ (CategorySchema) を作成してこのデータを構造化し、データベースに保存します。このステップは、スクレイピングした製品を e コマース ストアに統合する場合に特に役立ちます。データをデータベースに保存する必要がない場合は、スキーマ関連のコードを省略できます。
- スクレイピングの前に、ページの HTML 構造を理解し、抽出するコンテンツがどの CSS セレクターに含まれているかを特定することが重要です。
- 私の場合、Myntra Web サイトで特定された関連する CSS セレクターを使用して、対象とするコンテンツを抽出しました。
以上がWeb スクレイピングが簡単に: Puppeteer であらゆる HTML ページを解析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

はじめに私はあなたがそれを奇妙に思うかもしれないことを知っています、JavaScript、C、およびブラウザは正確に何をしなければなりませんか?彼らは無関係であるように見えますが、実際、彼らは現代のウェブ開発において非常に重要な役割を果たしています。今日は、これら3つの間の密接なつながりについて説明します。この記事を通して、JavaScriptがブラウザでどのように実行されるか、ブラウザエンジンでのCの役割、およびそれらが協力してWebページのレンダリングと相互作用を駆動する方法を学びます。私たちは皆、JavaScriptとブラウザの関係を知っています。 JavaScriptは、フロントエンド開発のコア言語です。ブラウザで直接実行され、Webページが鮮明で興味深いものになります。なぜJavascrを疑問に思ったことがありますか

node.jsは、主にストリームのおかげで、効率的なI/Oで優れています。 ストリームはデータを段階的に処理し、メモリの過負荷を回避します。大きなファイル、ネットワークタスク、リアルタイムアプリケーションの場合。ストリームとTypeScriptのタイプの安全性を組み合わせることで、パワーが作成されます

PythonとJavaScriptのパフォーマンスと効率の違いは、主に以下に反映されています。1)解釈された言語として、Pythonはゆっくりと実行されますが、開発効率が高く、迅速なプロトタイプ開発に適しています。 2)JavaScriptはブラウザ内の単一のスレッドに限定されていますが、マルチスレッドおよび非同期I/Oを使用してnode.jsのパフォーマンスを改善でき、両方とも実際のプロジェクトで利点があります。

JavaScriptは1995年に発信され、Brandon Ikeによって作成され、言語をCに実現しました。 2。JavaScriptのメモリ管理とパフォーマンスの最適化は、C言語に依存しています。 3. C言語のクロスプラットフォーム機能は、さまざまなオペレーティングシステムでJavaScriptを効率的に実行するのに役立ちます。

JavaScriptはブラウザとnode.js環境で実行され、JavaScriptエンジンに依存してコードを解析および実行します。 1)解析段階で抽象的構文ツリー(AST)を生成します。 2)ASTをコンパイル段階のバイトコードまたはマシンコードに変換します。 3)実行段階でコンパイルされたコードを実行します。

PythonとJavaScriptの将来の傾向には、1。Pythonが科学コンピューティングの分野での位置を統合し、AI、2。JavaScriptはWebテクノロジーの開発を促進します。どちらもそれぞれのフィールドでアプリケーションシナリオを拡大し続け、パフォーマンスをより多くのブレークスルーを行います。

開発環境におけるPythonとJavaScriptの両方の選択が重要です。 1)Pythonの開発環境には、Pycharm、Jupyternotebook、Anacondaが含まれます。これらは、データサイエンスと迅速なプロトタイピングに適しています。 2)JavaScriptの開発環境には、フロントエンドおよびバックエンド開発に適したnode.js、vscode、およびwebpackが含まれます。プロジェクトのニーズに応じて適切なツールを選択すると、開発効率とプロジェクトの成功率が向上する可能性があります。

はい、JavaScriptのエンジンコアはCで記述されています。1)C言語は、JavaScriptエンジンの開発に適した効率的なパフォーマンスと基礎となる制御を提供します。 2)V8エンジンを例にとると、そのコアはCで記述され、Cの効率とオブジェクト指向の特性を組み合わせて書かれています。3)JavaScriptエンジンの作業原理には、解析、コンパイル、実行が含まれ、C言語はこれらのプロセスで重要な役割を果たします。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ドリームウィーバー CS6
ビジュアル Web 開発ツール

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

WebStorm Mac版
便利なJavaScript開発ツール

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

ホットトピック









