Need a Proxy? Try our ISP Proxies!

Webscraping: Puppeteer Vs Selenium

Web scraping là quá trình trích xuất dữ liệu từ các trang web. Bạn có thể cạo thủ công bằng trình duyệt web hoặc tự động hóa nó bằng các thư viện như Selenium và Puppeteer.

Selenium là một công cụ mã nguồn mở cho phép bạn tự động hóa các ứng dụng web và kiểm tra chức năng trang web của bạn mà không cần phải viết bất kỳ mã nào trong trình duyệt của bạn. Nó cũng hoạt động với các ngôn ngữ lập trình khác như Java, Python, C #, v.v.

Puppeteer là một thư viện JavaScript để tự động hóa các bài kiểm tra trình duyệt Chrome trên các hệ thống Linux không đầu. Puppeteer hỗ trợ Chrome và đã được thử nghiệm trên Ubuntu 16.04 LTS, 18.04 LTS và Debian 9 Stretch / Buster / Siduction (64-bit). 

Trong bài viết này, chúng ta tìm hiểu cách sử dụng Selenium WebDriver trong NodeJS với Puppeteer để tự động hóa các ứng dụng bằng trình duyệt Chrome.

Puppeteer là gì?

Puppeteer là một thư viện JavaScript cho phép bạn điều khiển trình duyệt bằng puppeteer.js. Thư viện cung cấp API để tạo, quản lý và tương tác với các trang web mà không cần dựa vào bất kỳ bên thứ 3 nào. Nó cũng hỗ trợ chụp các sự kiện chuột và đầu vào bàn phím để bạn có thể tương tác với trang.

Puppeteer hoạt động như thế nào?

Puppeteer là một thư viện nút để điều khiển Chrome. Nó cho phép bạn kiểm soát trình duyệt bằng JavaScript và tương tác với nó theo những cách không thể chỉ sử dụng HTML, CSS và JS.

Bạn có thể sử dụng nó để mô phỏng các sự kiện chuột / bàn phím, chụp ảnh màn hình, thao tác với các phần tử DOM, gửi yêu cầu HTTP, v.v. Puppeteer cũng có một API cho phép bạn viết các tập lệnh múa rối của mình mà không cần sử dụng trực tiếp bất kỳ API nào của nó. Bạn có thể đọc thêm về API tại đây: https://github.com/puppeteerjs/puppeteer-api.

Puppeteer giải quyết vấn đề sau: Làm cách nào để điều khiển trình duyệt mà không thể chạy JavaScript? Puppeteer cho phép bạn mô phỏng các sự kiện chuột / bàn phím, chụp ảnh màn hình, thao tác các phần tử DOM, gửi yêu cầu HTTP và hơn thế nữa. Cũng có thể viết các tập lệnh múa rối của bạn mà không cần sử dụng trực tiếp bất kỳ API nào của nó. Điều này rất hữu ích nếu bạn muốn xây dựng Tiện ích mở rộng Chrome của riêng mình tương tác với trình duyệt bất ngờ.

Sự phức tạp và bối cảnh tự động hóa đang thay đổi theo từng ngày, vì vậy một công cụ có thể không phải là giải pháp cho tất cả. Nghệ sĩ múa rối có một số hạn chế. Nó chỉ hỗ trợ trình duyệt Chrome. Puppeteer cho Firefox là một công việc đang được tiến hành.

Ưu điểm của việc sử dụng Puppeteer là gì? 

Puppeteer cung cấp một cách dễ dàng để chạy các tập lệnh trong trình duyệt của bạn mà không cần phải tự viết chúng. Nó đơn giản, nhẹ và có thể mở rộng. Bạn có thể sử dụng nó với bất kỳ ngôn ngữ lập trình hoặc khung công tác nào (NodeJS, Python, Java). Nó có API riêng, vì vậy bạn không phải học một API khác chỉ cho mục đích quét web.

Bạn không cần biết Selenium hoạt động như thế nào để sử dụng Puppeteer, nhưng bạn vẫn nhận được tất cả các lợi ích của nó: tự động hóa, khả năng kiểm tra và tính di động!

Nhược điểm của việc sử dụng Puppeteer là gì?

Puppeteer là một khuôn khổ rất trẻ. Nó vẫn đang trong giai đoạn thử nghiệm và không hỗ trợ tất cả các trình duyệt (nó chỉ hỗ trợ Chrome, Firefox, Opera và Safari). Tuy nhiên, với thời gian Puppeteer sẽ có thể hỗ trợ nhiều trình duyệt hơn. API cũng không trưởng thành như Selenium, vì vậy ban đầu bạn có thể gặp một số rắc rối, nhưng nó sẽ trở nên tốt hơn theo thời gian. Bạn có thể tìm thấy nhiều ví dụ về cách sử dụng Puppeteer trên trang web chính thức của nó: puppeteerjs.com/docs/getting-started/. 

Làm cách nào để cài đặt Puppeteer? 

Bạn có thể cài đặt Puppeteer bằng cách tải xuống một gói từ trang web hoặc cài đặt thủ công. Truy cập trang kho lưu trữ Puppeteer và tải xuống phiên bản mới nhất cho hệ điều hành của bạn. Để chạy nó, bạn cần cài đặt NodeJS trên máy tính của mình. Nếu bạn không biết bắt đầu từ đâu, hãy truy cập vào đây: nodejs.org/en/download. Chạy npm install -g puppet. Điều này sẽ tải xuống tất cả các phụ thuộc cần thiết để chạy puppetserver. Bây giờ hãy mở một cửa sổ terminal trong thư mục chính của bạn và nhập puppetserver. 

Bạn sẽ thấy một cái gì đó như thế này nếu mọi thứ đều ổn: 

$ node server Starting server… done! http://localhost:4200 Connecting…done! http://localhost:4200 Disconnected / Connected http://localhost:4200 <– Start scraping now! 

Để dừng, hãy nhấn Ctrl+C, sau đó nhập thoát. 

Selenium là gì?

Selenium là một công cụ mạnh mẽ mà bạn có thể sử dụng để tự động hóa các ứng dụng dựa trên web. Nó cũng thường được gọi là Webdriver. Selenium đã xuất hiện khá lâu và nó đã trở thành một trong những công cụ phổ biến nhất trong ngành CNTT. 

Selenium làm gì?

Selenium cho phép bạn tự động hóa các trang web của mình bằng cách thực hiện các hành động khác nhau như nhấp vào nút, điền vào biểu mẫu hoặc thậm chí điều hướng qua các trang. Mục tiêu chính của phần mềm này là làm cho việc kiểm tra tự động trở nên dễ dàng và hiệu quả mà không cần phải tự viết bất kỳ mã nào. Bạn có thể sử dụng phần mềm này từ trình duyệt của mình (Chrome / Firefox) hoặc trong ngôn ngữ lập trình như Java, C # hoặc Python, v.v. Sau khi cài đặt trên máy tính của bạn, bạn phải tải xuống máy chủ selenium, chạy trên cổng 4444 (mặc định). Sau đó mở Chrome / Firefox và nhập chrome://extensions vào thanh địa chỉ nơi bạn sẽ thấy danh sách các tiện ích mở rộng có sẵn; chọn Quản lý tiện ích, sau đó bấm vào nút Tải tiện ích mở rộng đã giải nén .

Bạn có thể sử dụng Selenium để kiểm tra các trang web, ứng dụng di động và ứng dụng máy tính để bàn. Nó rất đơn giản để sử dụng và cho phép bạn tự động hóa các ứng dụng dựa trên web mà không cần bất kỳ kiến thức lập trình nào. Bạn cũng có thể tạo các thử nghiệm của riêng mình bằng Selenium IDE, có giao diện trực quan để phát triển các thử nghiệm theo cách thân thiện với người dùng.

Ưu điểm của Selen

  • Nó hoạt động trên tất cả các trình duyệt web (Chrome, Firefox, IE) và thiết bị di động (Android). Selenium là đa nền tảng. Tất cả những gì bạn cần làm là cài đặt một IDE cho nền tảng bạn chọn và bắt đầu sử dụng API. Bạn không cần phải học API mới hoặc các ngôn ngữ khác nhau cho mỗi nền tảng - chỉ cần sử dụng một ngôn ngữ chạy trên tất cả các nền tảng. 

  • Selenium hỗ trợ hầu hết các ngôn ngữ lập trình hiện có, bao gồm Java, C #, Python và nhiều ngôn ngữ khác. Nếu bạn muốn tự động hóa một cái gì đó trong JavaScript, bạn có thể sử dụng NodeJS với selenium-nodejs. 

  • Selenium hỗ trợ một số framework như Protractor, WebDriver, v.v. Điều tốt nhất về các framework này là chúng cung cấp một lớp trừu tượng đẹp giúp mọi thứ dễ dàng hơn so với việc có mã tự động hóa trình duyệt thuần túy được viết trực tiếp vào chính trình duyệt. Ví dụ: nếu chúng tôi muốn các thử nghiệm của mình chạy đồng thời với nhiều trình duyệt, thì chúng tôi có thể thực hiện việc này với trình điều khiển selenium-web và selenium-webdriver2. Điều này có nghĩa là chúng tôi sẽ không gặp bất kỳ vấn đề nào khi thử nghiệm trên nhiều trình duyệt cùng một lúc vì mọi thứ sẽ được xử lý bởi chính framework thay vì viết mã tùy chỉnh theo cách thủ công trong mọi trình duyệt (điều này sẽ làm cho bộ thử nghiệm của chúng tôi trông phức tạp hơn nhiều). 

  • Nhiều plugin có sẵn cho Selenium, chẳng hạn như tiện ích mở rộng của Google Chrome, tiện ích bổ sung của Firefox, v.v. Còn gì nữa? Rất nhiều ví dụ! Và không chỉ từ các dự án nguồn mở mà còn từ các dự án thương mại như Appium, Sauce Labs hoặc Watir. Vì vậy, nếu bạn đang tìm kiếm thứ gì đó nhanh chóng và dễ dàng, hãy thử chúng! Chúng là những công cụ tuyệt vời! Chúng cũng hỗ trợ kiểm thử không đồng bộ, có nghĩa là mặc dù thử nghiệm của bạn có thể mất nhiều thời gian hơn dự kiến, nhưng nó sẽ không ảnh hưởng đến các thử nghiệm khác chạy đồng thời mà không chặn luồng thực thi của nhau (chế độ không đồng bộ). Bằng cách này, chúng ta có thể viết các bài kiểm tra giao diện người dùng nhanh mà không phải lo lắng về việc làm chậm ứng dụng của mình. 

Xu hướng thị trường của Selenium &; Puppeteer cho thấy đã có sự gia tăng đáng kể trong việc sử dụng trong vài năm qua, đặc biệt là kể từ khi Selenium 2 được phát hành vào năm 2014. Sự phổ biến của Selenium đã tiếp tục phát triển hơn nữa kể từ đó, điều đó có nghĩa là nó có thể sẽ tiếp tục phát triển với tốc độ này trong tương lai gần. 

Tương lai của kiểm thử web là gì? 

Cộng đồng nguồn mở tiếp tục phát triển các công nghệ mới và cải thiện những công nghệ hiện có mà không có bất kỳ dấu hiệu chậm lại nào sớm. Miễn là chúng ta tiếp tục đổi mới và tạo ra các công cụ mới, chúng ta có thể mong đợi nhiều cải tiến công nghệ kiểm tra web hơn.

Công cụ tự động hóa web: Tại sao bạn nên sử dụng chúng? 

Khi đến lúc các thành viên trong nhóm của bạn làm việc trên các dự án của họ hoặc khi họ cần trợ giúp kiểm tra cơ sở mã của họ bằng các bài kiểm tra tự động, việc truy cập vào một công cụ tự động hóa như WebDriver sẽ giúp mọi thứ dễ dàng hơn nhiều so với việc thử các giải pháp thủ công bằng tay mỗi khi họ muốn kiểm tra thủ công thứ gì đó theo cách thủ công. 

Khi bạn có một công cụ tự động hóa web như WebDriver, bạn có thể sử dụng nó để tự động hóa các bài kiểm tra của mình và viết chúng bằng các ngôn ngữ khác nhau. Bạn cũng có thể sử dụng nó để tương tác với trình duyệt và kiểm tra các tính năng cụ thể của ứng dụng khó hoặc không thể thực hiện thủ công. Khả năng là vô tận!

Sử dụng một công cụ tự động hóa sẽ làm cho cuộc sống của bạn dễ dàng hơn nhiều bằng cách cho phép bạn viết các bài kiểm tra tự động cho cơ sở mã của mình mà không phải lo lắng về cách mọi thứ hoạt động dưới mui xe. 

Selenium hoặc Puppeteer: Cái nào tốt nhất cho webscraping?

Sự khác biệt chính giữa hai là Puppeteer chạy trong Node.js và Selenium chạy trong trình duyệt.

Bạn có thể sử dụng Puppeteer để quét web và kiểm tra API, nhưng nó không được hỗ trợ rộng rãi như Selenium. Nó cũng không có trình chạy thử nghiệm giao diện người dùng tích hợp, vì vậy bạn sẽ cần phải tự viết nếu bạn muốn sử dụng nó với trình duyệt không đầu như PhantomJS hoặc NightwatchJS.

Selenium có nhiều hỗ trợ từ các trình duyệt hơn Puppeteer và trình chạy thử nghiệm giao diện người dùng của nó hoạt động tốt với hầu hết các trình duyệt phổ biến (bao gồm cả Chrome). Tuy nhiên, một số tính năng vẫn còn thiếu trong Selenium so với Puppeteer. Đáng chú ý, API WebDriver để tương tác với các yếu tố trên một trang – có nghĩa là khó tự động hóa các tương tác phức tạp trên nhiều trang / tên miền / ứng dụng (ví dụ: nhấp vào liên kết) chỉ bằng thư viện này. 

Bây giờ là thời điểm thích hợp để đề cập rằng các proxy dân cư luân phiên của chúng tôi cải thiện đáng kể các hoạt động quét web với cả Selenium và Puppeteer.

In this Article:
Leave behind the complexities of web scraping.
Opt for IPBurger’s advanced web intelligence solutions to effortlessly collect real-time public data.
Đăng ký

Tìm hiểu sâu hơn nữa về

Quét web
AJ Tait
Web Scraping Blocks? Here’s What to Do

Web scraping blocks are a pain. One minute you’re gathering all the data you need, and the next, you’re staring at an error message. Frustrating, right? Websites are getting better at spotting scraping activities and shutting them down quickly. This isn’t just a minor annoyance—it can throw off your entire

Truy cập Web
AJ Tait
Facing IP Bans When Accessing Important Accounts? Find a Solution

Ever been locked out of your own accounts because of an IP ban? It’s like planning a smooth road trip, only to hit every possible red light. One minute you’re smoothly managing your online activities, and the next, you’re staring at a frustrating error message. This disruption isn’t just a

Truy cập Web
AJ Tait
Experiencing Slow Data Access? Make Your Business Super Quick

Slow data access can be a real hindrance to business performance. Slow data hampers decision-making, drags down productivity and leaves everyone frustrated. Imagine waiting for crucial information to load while your competitors are already a step ahead—definitely not a scenario you want to be in. Reliable and fast data access

Scale Your Business
With The Most Advanced
Proxies On Earth
Tham gia mạng proxy từng đoạt giải thưởng #1