首頁 > Java > java教程 > 高效抓取 JavaScript 網站

高效抓取 JavaScript 網站

Linda Hamilton
發布: 2024-11-20 01:12:03
原創
1022 人瀏覽過

Effizientes Scrapen von JavaScript-Webseiten

使用 JavaScript 進行網路爬行的可能性

靜態網站:Axios 與 Cheerio
讓我們逐步了解如何使用 JavaScript 抓取靜態電子商務網站。在此範例中,我們將使用兩個流行的函式庫:用於 HTTP 請求的 Axios 和用於解析 HTML 的 Cheerio。

*1。安裝依賴項 *
使用 npm 安裝 Axios 和 Cheerio:

npm 安裝 axios Cheerio

*2。建立腳本 *
建立一個 JavaScript 文件,例如B. scrapeEcommerce.js 並在程式碼編輯器中開啟它。

*3。導入模組*
將 Axios 和 Cheerio 匯入到您的腳本中:

const axios = require('axios');

const Cheerio = require('cheerio');

*4。定義目標 URL *
選擇您要造訪的電子商務網站。在此範例中,我們使用假設的 URL http://example-ecommerce.com。將其替換為所需的 URL:

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

*5。取得 HTML 內容 *
使用axios向目標URL發送GET請求,取得HTML內容:

axios.get(url)

.then(回應 => {

const html = response.data;

// 現在可以解析 HTML 內容

})

.catch(錯誤=> {

console.error('取得頁面時發生錯誤:', error);

});

*6。解析 HTML 並擷取資料 *
使用 Cheerio 解析 HTML 程式碼並提取您想要的信息,例如產品名稱和價格:

axios.get(url)

.then(回應 => {

const html = response.data;

const $ = Cheerio.load(html);

})

.catch(錯誤=> {

console.error('取得頁面時發生錯誤:', error);

});

*最重要的一點*

  • axios.get(url):發送 GET 請求並回傳承諾。
  • .then(response => { … }):如果請求成功,HTML內容在response.data中。
  • cheerio.load(html):將 HTML 內容載入到 Cheerio 中,以進行類似 jQuery 的 DOM 操作。
  • $('.product').each((index, element) => { … }):迭代所有 .product 元素。
  • $(element).find('.product-name').text().trim():擷取產品名稱。
  • $(element).find('.product-price').text().trim():提取產品的價格。
  • products.push({ name,price }):將產品資訊加入產品陣列。
  • console.log(products):輸出擷取的資訊。

*完整範例腳本:*
const axios = require('axios');

const Cheerio = require('cheerio');

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

axios.get(url)

.then(回應 => {

const html = response.data;

const $ = Cheerio.load(html);

})

.catch(錯誤=> {

console.error('取得頁面時發生錯誤:', error);

});

*登陸頁的自訂:*

  • 選擇器:.product、.product-name 和 .product-price 選擇器必須適應目標頁面的實際 HTML 結構。
  • 其他資料:有關其他資訊(例如產品圖片、連結、描述),請檢查對應的 HTML 結構。

使用 JavaScript 抓取網站的網頁抓取工具

如果您最近需要 Python、Ruby 或其他程式語言進行網頁抓取,Octoparse 是一個出色的工具,特別是對於支援 JavaScript 的網站。

舉個具體的例子:如果你有一個目標網站,想要開始抓取,你首先應該檢查該網站是否被阻止JS抓取。不同的網站使用不同的保護方法,您可能需要一些時間和令人沮喪的嘗試才能意識到問題,特別是如果抓取沒有產生預期的結果。然而,使用網頁抓取工具,資料擷取過程會順利進行。

許多網頁抓取工具可以讓您免去編寫爬蟲的麻煩。 Octoparse 在抓取大量 JavaScript 頁面方面特別高效,可以從 99% 的網頁中提取數據,包括使用 Ajax 的網頁。它還提供驗證碼解決服務。 Octoparse 可免費使用,並提供自動發現功能和 100 多個易於使用的模板,可實現高效的資料擷取。新用戶還可以享受 14 天的試用期。

以上是高效抓取 JavaScript 網站的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板