Hôm ni mình vẫn khuyên bảo toàn bộ phần lớn fan crawl dữ liệu trang linh phụ kiện năng lượng điện tử NShop. Mình đã trình làng đến tất cả rất nhiều tín đồ về puppeteer, headless browser với puppeteer nó dùng để triển khai gì.
Bạn đang xem: Puppeteer là gì, lấy dữ liệu web với node
Headless Browser Là Gì?
Headless Browser là 1 trong những trình chuyên chú website không tồn tại hình ảnh người tiêu dùng. Các headless browser hỗ trợ liên tưởng tự động hóa một website trong một môi trường xung quanh y như các trình coi ngó website thông dụng khác, nhưng mà nó được tiến hành thông qua giao diện dòng lệnh hoặc qua 1 mạng truyền thông. Các bạn có thể xem thêm trên đây.Ở phía trên mình gồm nắm gọn gàng lại một câu dễ dàng và đơn giản là headless Browser nỗ lực vày dùng để cẩn thận web thì nó áp dụng để cào tài liệu, tự sướng màn hình hiển thị của những trang web,...
Puppeteer Là Gì?
Puppeteer là thư viện của NodeJS, giúp đỡ bạn tinh chỉnh headless Chrome. Các các bạn tìm hiểu thêm trên đây nha

Lên Ý Tưởng
Ý tưởng thì mình đã crawl tài liệu trang linh kiện năng lượng điện tử Ncửa hàng. Vậy bản thân vẫn crawl cái gì từ trang này, mình sẽ crawl tất các url hình ảnh, title và giá bán của từng thành phầm trong trang chủ của website. Trang chủ của thằng này nó tất cả 60 thành phầm thì bản thân sẽ crawl 60 url hình ảnh, tiêu đề với price. Crawl ra làm sao thì chúng ta coi tiếp ở phần dưới nha.

Cài Đặt Và Thiết Lập
trước hết các bạn làm cho mình một thư mục vào folder sẽ là khu vực cất các tlỗi mục dùng làm crawl tài liệu.Khởi sản xuất áp dụng cùng với tệp tin package.jsonTrong tlỗi mục cội của ứng dụng của chúng ta cùng nhập npm init để có thể tạo áp dụng của doanh nghiệp cùng với tệp package.json.npm initSau kia chúng ta cài đặt module puppeteer để crawl tài liệu nha.Để cơ mà thiết lập puppeteer trước hết các bạn cần cài đặt NodeJS tại đây. npm install puppeteerSau Khi setup module kết thúc các bạn khiến cho bản thân file index.js nhằm bản thân viết công tác crawl dữ liệu.
Bắt Đầu Code Thôi Nào
Trong tệp tin index.js chúng ta require thỏng viện vào nha:
const puppeteer = require("puppeteer");Tiếp cho, bọn họ sẽ tạo nên một browser áp dụng thủ tục launch() cùng truy vấn vào trang linh phụ kiện điện tử Nshop nlỗi sau:
const puppeteer = require("puppeteer");let electronicUrl = "https://nshopvn.com/";(async () => const browser = await puppeteer.launch( headless: true ); const page = await browser.newPage(); await page.goto(electronicUrl); ......... ......... .........)();Để hoàn toàn có thể crawl tài liệu của trang web các bạn phải Điện thoại tư vấn mang lại API page.evaluate. Là một API hết sức quan trọng đặc biệt chất nhận được chúng ta chạy script để đưa văn bản trả về.

Bây tiếng các bạn qua trang Nshop để thấy kết cấu HTML của nó ra sao nha. Để có thể rước url hình họa, tiêu đề và giá bán của từng thành phầm.

Nlỗi chúng ta vẫn thấy trên hình ảnh thì thằng class="product-wrapper" nó là class cha bao quanh toàn bộ các câu chữ như: url ảnh, tiêu đề và giá bán.Bây giờ các bạn mngơi nghỉ tab console trong chrome dev tools để hoàn toàn có thể cào dữ liệu bằng cách viết code JavaScript
let products = <>; // sản xuất một array để có thể push tài liệu của từng thành phầm vào let product_wrapper = document.querySelectorAll(".product-wrapper"); // Lặp qua các NodeList để rất có thể rước dữ liệu cùng chuyển thành object product_wrapper.forEach((product) => let dataJson = ; try dataJson.img = product.querySelector(".image > img").src; dataJson.title = hàng hóa.querySelector(".woocommerce-loop-product__title").innerText; dataJson.price = product.querySelector(".price").innerText; catch (err) console.log(err) products.push(dataJson);// Push tài liệu object vào trong array ); console.log(products);Và đó là công dụng Khi bọn họ test trong console:

Sau lúc demo ok bọn họ vào file index.js cùng đó là code hoàn chỉnh:
const puppeteer = require("puppeteer");let electronicUrl = "https://nshopvn.com/";(async () => const browser = await puppeteer.launch( headless: true ); const page = await browser.newPage(); await page.goto(electronicUrl); let electronicData = await page.evaluate(() => let products = <>; let product_wrapper = document.querySelectorAll(".product-wrapper"); product_wrapper.forEach((product) => let dataJson = ; try dataJson.img = sản phẩm.querySelector(".image > img").src; dataJson.title = sản phẩm.querySelector(".woocommerce-loop-product__title").innerText; dataJson.price = hàng hóa.querySelector(".price").innerText; catch (err) console.log(err) products.push(dataJson); ); return products; ); console.log(electronicData); await browser.close();)();Tiếp đến chúng ta msinh hoạt terminal trong VScode hoặc trong hành lang cửa số cmd chúng ta gõ cho doanh nghiệp node index.js. Và giúp xem nó crawl tài liệu ra làm sao nha.

Vậy là ngừng rồi nha, các bạn có thể tham khảo code mà mình đã push lên github trên trên đây nha
Lời KếtVậy Là Xong bài xích Hướng Dẫn Crawl Dữ Liệu Với Puppeteer Và Nodejs rồi nhé. Mình mong ước sau bài topic này những chúng ta có thể biết cùng hiểu thêm về puppeteer, tự topic này các chúng ta cũng có thể không ngừng mở rộng thêm ý tưởng new. Và rất có thể tự tay mình làm cho đa số project không nhất thiết phải vượt đặc trưng nhưng lại nó vày thiết yếu bạn làm thì cũng coi như là thành quả đó vào quá trình bạn làm việc được.
Nếu chúng ta cảm giác bài viết của bản thân xuất xắc thì những chúng ta cũng có thể cỗ vũ mình để bản thân gồm thêm đụng lực nhằm ra đầy đủ bài bác topic hay với chất lượng rộng cỗ vũ mình tại đây nha.