Hướng dẫn selenium javascript scraping python - selen javascript cạo python

Xóa web với JavaScript là một kỹ thuật rất hữu ích để trích xuất dữ liệu từ Internet để trình bày hoặc phân tích. Tuy nhiên, trong thời đại của các trang web động này, việc trích xuất dữ liệu chính xác từ web trở nên khó khăn vì tính chất luôn thay đổi của dữ liệu.

Nội phân Chính showShow

  • Web Scraping là gì?
  • Lợi ích của việc quét web với JavaScript
  • Nơi để kiểm tra bảo vệ dữ liệu?
  • Công cụ cạo web
  • Lợi ích của việc sử dụng selenium với JavaScript để quét web
  • Triển khai máy quét web với JavaScript và Selenium
  • Điều kiện tiên quyết
  • Cài đặt
  • Tạo một dự án
  • YouTube Web Scraping với JavaScript và Selenium
  • Hiển thị dữ liệu JSON
  • Web cào bằng javascript và selen trên lưới selen dựa trên đám mây
  • Hạn chế của việc sử dụng selen để quét web với javascript
  • Câu hỏi thường gặp [Câu hỏi thường gặp]
  • Selenium có thể được sử dụng để quét web không?
  • JavaScript có tốt hơn Python cho việc cạo web không?

Trước đây, chúng tôi đã sử dụng các thư viện như urllib hoặc yêu cầu đọc dữ liệu từ các trang web, nhưng mọi thứ bắt đầu sụp đổ với các trang web động. Đối với các trang web không tĩnh, sử dụng cuộc gọi hoặc yêu cầu AJAX phổ biến sẽ không hoạt động.

Khung Selenium đã được giới thiệu để tự động hóa như vậy để giúp đỡ trong khía cạnh của dữ liệu động và các tính năng quan trọng khác.

Khi chúng tôi đang phát triển một cổng thông tin việc làm tự động cho các kỹ sư phụ trợ, chúng tôi cần một khung cạo web đáng tin cậy để giúp chúng tôi cào qua 20 cổng thông tin và trả lại mỗi nghìn việc làm, và selenium là câu trả lời.

Nhưng trước khi chúng ta đi sâu vào Selenium là gì và thực hiện quét web với JavaScript và Selenium, hãy để khám phá tất cả những gì về web?

MỤC LỤC

  • Web Scraping là gì?
  • Công cụ cạo web
  • Triển khai máy quét web với JavaScript và Selenium
  • YouTube Web Scraping với JavaScript và Selenium
  • Web cào bằng javascript và selen trên lưới selen dựa trên đám mây
  • Hạn chế của việc sử dụng selen để quét web với javascript
  • Câu hỏi thường gặp [Câu hỏi thường gặp]

Web Scraping là gì?

Selenium có thể được sử dụng để quét web không?

JavaScript có tốt hơn Python cho việc cạo web không?

Trước đây, chúng tôi đã sử dụng các thư viện như urllib hoặc yêu cầu đọc dữ liệu từ các trang web, nhưng mọi thứ bắt đầu sụp đổ với các trang web động. Đối với các trang web không tĩnh, sử dụng cuộc gọi hoặc yêu cầu AJAX phổ biến sẽ không hoạt động.

  • Khung Selenium đã được giới thiệu để tự động hóa như vậy để giúp đỡ trong khía cạnh của dữ liệu động và các tính năng quan trọng khác.
  • Khi chúng tôi đang phát triển một cổng thông tin việc làm tự động cho các kỹ sư phụ trợ, chúng tôi cần một khung cạo web đáng tin cậy để giúp chúng tôi cào qua 20 cổng thông tin và trả lại mỗi nghìn việc làm, và selenium là câu trả lời.
  • Nhưng trước khi chúng ta đi sâu vào Selenium là gì và thực hiện quét web với JavaScript và Selenium, hãy để khám phá tất cả những gì về web?
  • MỤC LỤC
  • Hạn chế của việc sử dụng selen và javascript để quét web
  • Xóa web là quá trình trích xuất dữ liệu từ Internet để lưu trữ ở các định dạng khác nhau hoặc để xử lý và phân tích thêm. Nó cũng có thể được gọi là thu hoạch web hoặc trích xuất dữ liệu web.
  • Bằng cách quét web với JavaScript và Selenium, về cơ bản chúng tôi tự động hóa quy trình trích xuất dữ liệu từ Internet và lưu trữ nó để xử lý thêm.

Nó có thể hữu ích để trích xuất dữ liệu cho các mục đích khác nhau như

Nghiên cứu học thuật hoặc kinh doanh

Lợi ích của việc quét web với JavaScript

Phân tích dữ liệu lịch sử

  • So sánh giá
  • SEO
  • Sự bảo vệ nhãn hiệu
  • Xác minh quảng cáo

và nhiều trường hợp sử dụng khác

Nơi để kiểm tra bảo vệ dữ liệu?

Bạn có thể sử dụng máy quét web để tạo đánh giá sản phẩm từ các trang web đánh giá để giúp bạn quyết định mua một sản phẩm cụ thể.

Bạn cũng có thể sử dụng máy quét web để cạo hàng ngàn cổng công việc cho các công việc cụ thể mà bạn quan tâm đến việc đăng ký.

  • Dưới đây là một vài lợi ích của việc quét web:
    Every website should have a document stating whether the website’s content can be web scraped or not. You can check the copyright document to gain more insights into the possibilities provided by the company on web scraping.
  • Trích xuất chi tiết sản phẩm của các trang web thương mại điện tử như giá cả, tên sản phẩm, hình ảnh, v.v.
    The robot.txt file also provides strict information on web scraping, and you should adhere to this file’s information or legal stand. If it says no web scraping, then it should be respected.
  • Xóa web rất hữu ích trong nghiên cứu vì nó có thể giúp thu thập dữ liệu có cấu trúc từ nhiều trang web.
    If a business provides a public API that users can access the data in the business, then you should adhere to using the API instead of web scraping it to avoid legal action.
  • Thu thập dữ liệu từ các nguồn khác nhau để phân tích có thể được tự động hóa với việc cạo web dễ dàng.

    Nó có thể được sử dụng để thu thập dữ liệu để kiểm tra và đào tạo các mô hình học máy.

  • Lợi ích của việc cạo web là vô tận và giới thiệu những hiểu biết và khả năng chu đáo khác nhau cho các doanh nghiệp.
    Web scraping of public content is not a crime, but if the content owner forbids it – web scraping companies should comply.

Bây giờ chúng tôi đã hiểu đứng về tính hợp pháp của việc quét web, có những phương pháp nào đối với dữ liệu cạo web cho một trường hợp sử dụng nhỏ hoặc quét web theo tỷ lệ? Tiếp theo, hãy để khám phá các phương pháp và công cụ khác nhau có sẵn để cạo web.

Đây là phương pháp cạo web phổ biến nhất trong đó một doanh nghiệp triển khai một phần mềm đã tạo cho tất cả các trường hợp sử dụng cào web của họ.

Nếu bạn muốn truy cập và thu thập dữ liệu theo quy mô, bạn cần các công cụ cạo web tốt có thể vượt qua việc chặn IP, che giấu và recaptcha. Có các công cụ phổ biến như Scracy, Soup đẹp, hộp Scrapes, phần mềm trung gian proxy, Octopara, Parsehub và Apify.

Những công cụ này giúp bạn thực hiện nhiệm vụ cạo web của bạn ở quy mô và có thể vượt qua các trở ngại khác nhau để giúp bạn đạt được mục tiêu của mình.

Selenium là một khung tự động hóa web nguồn mở phổ biến được sử dụng để kiểm tra trình duyệt tự động. Khung này giúp bạn viết các tập lệnh kiểm tra selenium có thể được sử dụng để tự động hóa thử nghiệm các trang web và ứng dụng web, sau đó thực hiện chúng trong các trình duyệt khác nhau trên nhiều nền tảng bằng cách sử dụng bất kỳ ngôn ngữ lập trình nào bạn chọn. Tuy nhiên, nó có thể được điều chỉnh để giải quyết các vấn đề cạo râu động, vì chúng tôi sẽ chứng minh trong blog về cách bạn có thể thực hiện cạo web bằng JavaScript và Selenium.

Selenium có ba thành phần chính:

  • Selenium IDE: Đây là một plugin trình duyệt - một cách nhanh hơn, dễ dàng hơn để tạo, thực thi và gỡ lỗi các tập lệnh selenium của bạn.
  • Selenium WebDriver: Đây là một tập hợp các API di động giúp bạn viết các bài kiểm tra tự động bằng bất kỳ ngôn ngữ nào chạy trên đầu trình duyệt của bạn.
  • Selenium Grid: Nó tự động hóa quá trình phân phối và mở rộng các thử nghiệm trên nhiều trình duyệt, hệ điều hành và nền tảng.

Khi viết blog này trên web cào bằng javascript và selenium, phiên bản mới nhất của selenium là Selenium 4. Nếu bạn có thể biết thêm về những gì mới trong Selenium 4, bạn có thể xem video này:

Lợi ích của việc sử dụng selenium với JavaScript để quét web

Lợi ích của việc sử dụng selen là vô hạn và có thể được sử dụng trong các khía cạnh khác nhau của việc quét web với JavaScript - từ cào tĩnh đến các trang web động. Dưới đây là một vài lợi ích của việc sử dụng Selenium WebDriver cho dự án cạo web tiếp theo của bạn.

  • Selenium WebDriver có thể được cấu hình để cạo một trang web trên các trình duyệt có trình điều khiển trình duyệt có sẵn.
  • Selenium WebDriver để cạo các trang web phức tạp với nội dung động vì một số dữ liệu cần thiết yêu cầu HTTP.
  • Thực hiện thử nghiệm ảnh chụp màn hình tự động bằng cách chụp nhiều ảnh chụp màn hình của các trang web khi bạn cạo các trang web.
  • Với Selenium WebDriver, bạn có thể mô phỏng một người dùng thực làm việc với trình duyệt bằng cách tải tất cả các tài nguyên và tải xuống cookie trình duyệt.

Trong hướng dẫn Selenium JavaScript này, chúng tôi sẽ tìm hiểu cách thực hiện quét web với JavaScript và selenium trên máy địa phương của chúng tôi và cả trên Lambdatest Cloud Selenium Grid.

Chúng tôi sẽ quét Web Kênh YouTube Lambdatest, hiển thị danh sách các video trên trang web bằng selenium và chuyển đổi thông tin sang dữ liệu JSON.

Nếu bạn chưa quen với kênh này, vui lòng đăng ký kênh YouTube Lambdatest và được cập nhật với các hướng dẫn mới nhất về thử nghiệm Selenium, thử nghiệm Cypress, CI/CD, v.v.

Tăng tốc tự động hóa JavaScript với thử nghiệm song song. Hãy thử Lambdatest ngay bây giờ!

Triển khai máy quét web với JavaScript và Selenium

Một trong những lợi ích của Selenium là nó có thể các trang JavaScript năng động của Web-scrape, nơi có các tương tác động như lơ lửng trên các mục menu. Trong phần này của blog này trên Web Scraping với JavaScript và Selenium, chúng tôi sẽ trình bày cách quét các video trên YouTube và hiển thị dữ liệu dưới dạng JSON bằng Selenium và JavaScript.

Selenium gói gọn sự phức tạp của việc xây dựng một công cụ tự động hóa cho các trang động và giúp dễ dàng bằng cách đơn giản hóa việc cài đặt và định cấu hình gói.

Điều kiện tiên quyết

Trước khi bạn tiếp tục bên dưới, bạn nên làm quen với Node.js và Express.js - một khung Node.js. Nếu bạn chưa quen với thử nghiệm Express, bạn có thể tìm hiểu thêm về nó thông qua hướng dẫn này về việc bắt đầu nhanh chóng với thử nghiệm rõ ràng.

Cài đặt

Chúng tôi sẽ tiếp tục bằng cách cài đặt các gói và phần mềm cần thiết để triển khai máy quét Web với JavaScript và Selenium.

  • Visual Studio Code: Đây là trình chỉnh sửa mã mà chúng tôi sẽ sử dụng trong bản demo này, mặc dù bạn có thể đi với bất kỳ trình chỉnh sửa mã nào bạn chọn. Bạn có thể sử dụng bất kỳ IDE nào khác của bạn. This is the code editor we will use in this demo, though you can go with any code editor of your choice. You could use any other IDE of your choice.
  • Trình điều khiển trình duyệt: Để chạy trình điều khiển thử nghiệm Selenium trên máy của bạn, bạn cần tải xuống trình điều khiển từ các vị trí sau theo trình duyệt mà bạn chọn. To run the Selenium testing drivers on your machine, you need to download the drivers from the following locations according to the browser of your choice.
Trình duyệtTải xuống vị trí
Opera//github.com/operasoftware/operachromiumdriver/releases
Firefox//github.com/mozilla/geckodriver/releases
Trình duyệt Chrome//chromedriver.chromium.org/doads
trình duyệt web IE//github.com/seleniumhq/selenium/wiki/InterTexplorerDriver
Microsoft Edge

Sau khi tải xuống bất kỳ trình điều khiển nào, hãy đảm bảo cài đặt nó và thiết lập nó đúng theo hệ điều hành của bạn.

Sau khi cài đặt và định cấu hình trình điều khiển trình duyệt thành công, chúng tôi sẽ khám phá cách tạo một dự án mới và bắt đầu quét video YouTube trong phần tiếp theo của blog này trên Web Scraping với JavaScript và Selenium.

Tạo một dự án

Sau khi cài đặt, chúng tôi sẽ tạo một dự án VSCode Node.js mới và thêm các thư viện sau vào tệp pack.json của chúng tôi.

  1. Đảm bảo bạn đã cài đặt Node.js và cấu hình đúng trong hệ điều hành của bạn. Bạn có thể tải xuống và cài đặt nó từ trang web chính thức của Node.js.
  2. Hãy để cài đặt các gói sau:
  3.     ```bash```bash

    & nbsp; & nbsp; & nbsp; & nbsp;npm install express selenium-webdriver

        ``````

  4. Sau khi cài đặt các thư viện, hãy để tạo tệp index.js bên trong thư mục gốc và thiết lập máy chủ Express của chúng tôi.index.js file inside the root directory and set up our express server.
  5.     ```bash```bash

    & nbsp; & nbsp; & nbsp; & nbsp; touch index.jstouch index.js

        ``````

    Tạo máy chủ Express để nghe các yêu cầu đến:

        ```js```js

        constexpress=require['express']constexpress=require['express']

        const{Builder,By}=require['selenium-webdriver'];const{Builder,By} =require['selenium-webdriver'];

        constapp=express[]constapp=express[]

        constport=3000constport=3000

        app.get['/',[request,response]=>{app.get['/', [request,response]=>{

    & nbsp; & nbsp; & nbsp; & nbsp; // Mã cào web tại đây// Web Scraping Code here

        }]}]

        app.listen[port,[]=>{app.listen[port, []=>{

    & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & NBSP;console.log[`Example app listening at http://localhost:${port}`]

        }]}]

  6. Đoạn mã ở trên tạo ra một máy chủ Express mới và lắng nghe các yêu cầu đến từ người dùng. Trong phần tiếp theo của blog này trên Web Scraping với JavaScript và Selenium, chúng tôi sẽ sử dụng thư viện Selenium-Webdriver mà chúng tôi đã cài đặt để quét các video YouTube của chúng tôi.selenium-webdriver library we installed to web scrape our YouTube videos.

YouTube Web Scraping với JavaScript và Selenium

Trong cuộc biểu tình này, chúng tôi xóa dữ liệu sau từ kênh YouTube Lambdatest và hiển thị nó dưới dạng JSON:

  • tiêu đề video
  • Xem video
  • Video được xuất bản ngày

Bạn có thể thực hiện nó bằng cách sử dụng lưới tự động hóa selen dựa trên đám mây do LambDatest cung cấp, sẽ lấy đi tất cả các cấu hình thủ công cả trong phát triển và trong sản xuất.

Lambdatest là một nền tảng kiểm tra trình duyệt chéo cho phép bạn tự động hóa các trình duyệt với selenium, appium và các khung khác. Với Lưới selenium Lambdatest, bạn có thể chạy các thử nghiệm Selenium song song trên một trang trại trình duyệt trực tuyến gồm hơn 3000 trình duyệt và cấu hình nền tảng.

Dưới đây là một hướng dẫn đơn giản về cách mà việc cạo sẽ xảy ra trước khi đi sâu vào việc thực hiện.

  1. Mở trang Video kênh YouTube.
  2. Nó cuộn cho đến khi kết thúc trang để cạo tất cả các video có sẵn.
  3. Truy cập tiêu đề video, lượt xem và tải chi tiết tải lên bằng một vòng lặp.
  4. Chuyển đổi thông tin đã cạo sang JSON.

Implementation:

GitHub

Mã hướng dẫn:

Hãy cùng nhau đi qua mã và hiểu được sự nitty-gritty của nó.

Bước 1: Thêm các gói yêu cầu

Đầu tiên, chúng tôi yêu cầu các gói Express và Selenium-WebDriver và tiếp theo chúng tôi đã tạo một máy chủ Express để xử lý yêu cầu đến. Yêu cầu được xử lý bằng cách gọi hàm WebScrapingTest.

Bước 2: Tạo một thể hiện của Selenium WebDriver

Bên trong hàm OpenChrometest, chúng tôi đã tạo một thể hiện của lớp Trình xây dựng từ gói Selenium WebDriver mà chúng tôi đã nhập trước đó. Chúng tôi cũng đặt phương thức Forbrowser được sử dụng để chỉ ra trình duyệt sử dụng cho việc cạo web và cuối cùng, chúng tôi gọi phương thức xây dựng, tạo ra một máy khách webdriver mới dựa trên cấu hình hiện tại của nhà xây dựng này.

Với ví dụ của người xây dựng, chúng tôi đã vượt qua URL Video Lambdatest chính thức trong phương thức GET của lớp xây dựng.

```js``js

& nbsp; & nbsp; & nbsp; & nbsp; driver = Await newBuilder [].driver=await newBuilder[].forBrowser['chrome'].build[];

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; đang chờ trình điều khiển.get ['//www.youtube.com/c/lambdatest/videos'];await driver.get['//www.youtube.com/c/LambdaTest/videos'];

Bước 3: Tải tất cả các video YouTube trên trang Tiếp theo, chúng tôi sẽ tải tất cả các video trong trang và thu thập thông tin cụ thể bằng cách sử dụng vòng lặp trong JavaScript.
Next, we will load all the videos within the page and collect specific information using a loop in JavaScript.

Để làm điều đó, chúng tôi cần nhắm mục tiêu một yếu tố cụ thể trong trang Video YouTube có chứa tất cả các video bằng công cụ Thanh tra Chrome, chúng tôi có thể chọn bất kỳ yếu tố nào trong trang web. Dưới đây là một ảnh chụp màn hình hiển thị phần tử và bộ chọn CSS để sử dụng.

Tính đến thời điểm viết, thuộc tính lớp cho Target là ytd-grid-video-renderer style-scope ytd-grid-renderer, đây là sự kết hợp của thuộc tính lớp CSS của container cha mẹ và thùng chứa video riêng lẻ.

Tiếp theo, chúng tôi sẽ chuyển đổi các lớp thành CSS QuerySelector và nhắm mục tiêu tất cả các video bằng phương thức FindElements trong lớp Selenium WebDriver và theo lớp ví dụ. Đây là vẻ ngoài của nó:By instance class.
Here is how it looks:

ConstallVideos = Await Driver.findelements [allVideos=await driver.findElements[

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; By.css ['ytd-grid-video-renderer.style-scope.ytd-grid-renderer']]By.css['ytd-grid-video-renderer.style-scope.ytd-grid-renderer']

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ];];

Selenium sử dụng lớp từng ví dụ để thể hiện các bộ chọn truy vấn khác nhau, vì vậy bạn có thể chọn các phần tử bằng trình định vị selen như tên CSS, ID, lớp, v.v.

Cuối cùng, phương thức Findelements trả về một đối tượng của tất cả các nút DOM HTML được chọn có tên là WebEuity, chúng tôi sẽ lặp qua để truy xuất siêu dữ liệu của các video trong khi thực hiện quét web với JavaScript và Selenium.

Bước 4: Chuyển đổi sang JSON

Cuối cùng, chúng tôi lặp qua webelement và truy xuất siêu dữ liệu của các video như tiêu đề video, lượt xem video và ngày xuất bản video.

Trong mã ở trên, chúng tôi đang sử dụng cả bộ chọn XPath để hoàn thành nhiệm vụ truy xuất thông tin video cơ bản. Ảnh chụp màn hình bên dưới cho bạn thấy cách truy xuất XPath của một yếu tố cụ thể trong một trang web.

Thứ hai, chúng tôi cũng đang sử dụng bộ chọn ID để truy xuất tiêu đề video. Ảnh chụp màn hình này cho thấy nơi nhận ID cho phần tử tiêu đề video trên YouTube bằng công cụ kiểm tra:

Hiển thị dữ liệu JSON

Sau khi thực hiện thành công việc cạo web trên YouTube với JavaScript và Selenium, chúng tôi chuyển đổi chúng thành JSON và gửi chúng như một phản hồi cho yêu cầu của chúng tôi bằng máy chủ Express. Cuối cùng, chúng tôi đã sẵn sàng để kiểm tra trình cạo web mới.

  1. Bắt đầu một máy chủ phát triển mới bằng lệnh sau:
  2. ```bash``bash

    & nbsp; & nbsp; & nbsp; & nbsp; node index.jsnode index.js

        ``````

  3. Mở trình duyệt Chrome và truy cập localhost: 3002, giả sử bạn sử dụng cùng một số cổng từ bản demo.
  4. Bạn nên được chào đón với dữ liệu JSON của các video YouTube sau vài giây, như ảnh chụp màn hình bên dưới:

Một ảnh chụp màn hình hiển thị kết quả của việc quét web với JavaScript và selenium trên trang Video YouTube Lambdatest.

Nếu bạn thích thử nghiệm nhiều như tôi, bạn sẽ thích tìm hiểu thêm về một trong những công cụ mạnh mẽ nhất mà tôi biết - Selenium WebDriver với JavaScript. Hướng dẫn video này bao gồm mọi thứ bạn cần biết.

Web cào bằng javascript và selen trên lưới selen dựa trên đám mây

Trong phần trước, chúng tôi đã thực hiện quét web với JavaScript và selenium trên máy cục bộ của chúng tôi. Một trong những thiếu sót của phương pháp này là bạn cần cài đặt và định cấu hình trình điều khiển trình duyệt cục bộ.

Giả sử bạn cần sử dụng nhiều trình duyệt để thực hiện tự động hóa đó, bạn cũng phải cài đặt thủ công và định cấu hình từng trình duyệt. Đây là nơi mà một lưới dựa trên đám mây có thể siêu ảnh hưởng, vì bạn có thể thực hiện kiểm tra tự động hóa JavaScript song song trên các kết hợp trình duyệt và nền tảng khác nhau.

Các nền tảng kiểm tra đám mây như Lambdatest cho phép bạn thực hiện thử nghiệm trực tiếp và chạy các thử nghiệm song song trên hơn 3000 trình duyệt thực và các phiên bản khác nhau của chúng. Nó cung cấp cho bạn quyền truy cập vào hàng ngàn trình duyệt để thử nghiệm di động và web để giúp bạn đạt được phạm vi kiểm tra tối đa trong quá trình tự động hóa web Selenium. Hãy cùng xem cách chạy thử nghiệm tự động hóa Selenium với JavaScript trên LambDatest:
Let’s look at how to run the Selenium automation test with JavaScript on LambdaTest:

Bước 1: Hãy bắt đầu bằng cách tạo một tài khoản miễn phí trên nền tảng Lambdatest. Khi bạn đăng nhập, hãy tìm kiếm tên người dùng và khóa truy cập duy nhất của bạn từ phần hồ sơ Lambdatest của trang web. Let’s start by creating a free account on the LambdaTest platform. Once you log in, fetch your unique username and access key from the LambdaTest Profile Section of the website.

Bước 2: Thực hiện các thay đổi cấu hình sau đối với mã hiện tại của bạn: Cung cấp tên người dùng và khóa truy cập. Make the following configuration changes to your existing code:
Provide username and access key.

  • Cung cấp tên người dùng và khóa truy cập.
  • constusername = 'your_username'; // thay thế bằng tên người dùng của bạnUSERNAME='YOUR_USERNAME';//replace with your username

    & nbsp; & nbsp; & nbsp; & nbsp; constkey = 'your_key'; // thay thế bằng accessKey của bạnconstKEY='YOUR_KEY';//replace with your accesskey

  • Cung cấp máy chủ tương ứng với nền tảng Lambdatest.
  •     constGRID_URL='hub.lambdatest.com/wd/hub';constGRID_URL='hub.lambdatest.com/wd/hub';

  • Tạo các khả năng trình duyệt mong muốn bằng Trình tạo khả năng LambDatest.
  • constcapabilities={capabilities={

    & nbsp; & nbsp; & nbsp; & nbsp; Build: 'Web Scraping với JavaScript và Selenium',build:'Web Scraping with JavaScript and Selenium',

    & nbsp; & nbsp; & nbsp; & nbsp; Tên: 'Video YouTube',name:'Youtube Videos',

    & nbsp; & nbsp; & nbsp; & nbsp; Nền tảng: 'Windows 10',platform:'Windows 10',

    & nbsp; & nbsp; & nbsp; & nbsp; Browsername: 'Chrome',browserName:'Chrome',

    & nbsp; & nbsp; & nbsp; & nbsp; Phiên bản: '90 .0 ',version:'90.0',

    & nbsp; & nbsp; & nbsp; & nbsp; selenium_version: '3.13.0',selenium_version:'3.13.0',

    & nbsp; & nbsp; & nbsp; & nbsp; 'Chrome.Driver': '90.0','chrome.driver':'90.0',

        };};

    Chọn phiên bản trình duyệt mong muốn và cấu hình HĐH. Bạn cũng có thể cung cấp tên xây dựng. Cung cấp đối tượng này bên trong chức năng kiểm tra.

  • Cung cấp Gridurl. Bạn cũng có thể tìm thấy giá trị này từ bảng điều khiển Lambdatest.
  •     constgridUrl='//'+USERNAME+':'+KEY+'@'+GRID_URL;constgridUrl='//'+USERNAME+':'+KEY+'@'+GRID_URL;

  • Cuối cùng, chỉnh sửa mã để xây dựng và khởi tạo trình duyệt trên nền tảng được chỉ định.
  • 1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    & nbsp; & nbsp;async functionWebScrapingWithLambdaTest[]{

    & nbsp; & nbsp; & nbsp; & nbsp; thử{try{

    & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; người lái xe = Await newBuilder []driver=await newBuilder[]

    & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; .UsingServer [Gridurl].usingServer[gridUrl]

    & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; .WithCapabilities [Khả năng].withCapabilities[capabilities]

    & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; .xây dựng[];.build[];

    & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; đang chờ trình điều khiển.get ['//www.youtube.com/c/lambdatest/videos'];await driver.get['//www.youtube.com/c/LambdaTest/videos'];

    & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ConstallVideos = Await Driver.findelements [constallVideos=await driver.findElements[

    & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; By.css ['ytd-grid-video-renderer.style-scope.ytd-grid-renderer']]By.css['ytd-grid-video-renderer.style-scope.ytd-grid-renderer']

    & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ];];

    & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; returnAwait getVideos [allvideos];returnawait getVideos[allVideos];

    & nbsp; & nbsp; & nbsp; & nbsp; } bắt [lỗi] {} catch[error]{

    & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ném [lỗi];thrownewError[error];

    & nbsp; & nbsp; & nbsp; & nbsp; }cuối cùng{}finally{

    & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; đang chờ trình điều khiển.quit [];await driver.quit[];

    & nbsp; & nbsp; & nbsp; & nbsp; }}

        }}

    Dưới đây là việc triển khai cuối cùng của tự động hóa selenium với JavaScript sẽ được chạy trên lưới Selenium dựa trên đám mây của Lambdatest.

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    34

    35

    36

    37

    38

    39

    40

    41

    42

    43

    44

        app.get['/lambdatest',async[request,response]=>{app.get['/lambdatest',async[request,response]=>{

    & nbsp; & nbsp; & nbsp; & nbsp; thử{try{

    & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; người lái xe = Await newBuilder []constdata=await WebScrapingWithLambdaTest[];

    & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; .UsingServer [Gridurl]response.status[200].json[data];

    & nbsp; & nbsp; & nbsp; & nbsp; } bắt [lỗi] {} catch[error]{

    & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ném [lỗi];response.status[500].json[{

    & nbsp; & nbsp; & nbsp; & nbsp; }cuối cùng{message:'Server error occurred',

    & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; đang chờ trình điều khiển.quit [];}];

    & nbsp; & nbsp; & nbsp; & nbsp; }}

        }];}];

    Dưới đây là việc triển khai cuối cùng của tự động hóa selenium với JavaScript sẽ được chạy trên lưới Selenium dựa trên đám mây của Lambdatest.constUSERNAME='YOUR_USERNAME';//replace with your username

    & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; constdata = Await WebsCrapingWithLamBDatest [];const KEY='YOUR_KEY';//replace with your accesskey

        constGRID_URL='hub.lambdatest.com/wd/hub';constGRID_URL='hub.lambdatest.com/wd/hub';

        constcapabilities={constcapabilities={

    & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; phản hồi.status [200] .Json [dữ liệu];build:'JavaScript and Selenium Testing',

    & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; phản hồi.status [500] .json [{name:'Google search',

    & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Thông báo: 'Đã xảy ra lỗi máy chủ',platform:'Windows 10',

    & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; }];geoLocation:'US',

    & nbsp; & nbsp; & nbsp; & nbsp; constusername = 'your_username'; // thay thế bằng tên người dùng của bạnbrowserName:'Chrome',

    & nbsp; & nbsp; & nbsp; & nbsp; constkey = 'your_key'; // thay thế bằng accessKey của bạnversion:'90.0',

    & nbsp; & nbsp; & nbsp; & nbsp; Xây dựng: 'Kiểm tra JavaScript và Selenium',selenium_version:'3.13.0',

    & nbsp; & nbsp; & nbsp; & nbsp; Tên: 'Tìm kiếm Google','chrome.driver':'90.0',

        };};

        constgridUrl='//'+USERNAME+':'+KEY+'@'+GRID_URL;constgridUrl='//'+USERNAME+':'+ KEY+'@'+GRID_URL;

    & nbsp; & nbsp;async functionWebScrapingWithLambdaTest[]{

    & nbsp; & nbsp; & nbsp; & nbsp; thử{try{

    & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; người lái xe = Await newBuilder []driver=await newBuilder[]

    & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; .UsingServer [Gridurl].usingServer[gridUrl]

    & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; .WithCapabilities [Khả năng].withCapabilities[capabilities]

    & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; .xây dựng[];.build[];

    & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; đang chờ trình điều khiển.get ['//www.youtube.com/c/lambdatest/videos'];await driver.get['//www.youtube.com/c/LambdaTest/videos'];

    & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ConstallVideos = Await Driver.findelements [constallVideos=await driver.findElements[

    & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; By.css ['ytd-grid-video-renderer.style-scope.ytd-grid-renderer']]By.css['ytd-grid-video-renderer.style-scope.ytd-grid-renderer']

    & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ];];

    & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; returnAwait getVideos [allvideos];returnawait getVideos[allVideos];

    & nbsp; & nbsp; & nbsp; & nbsp; } bắt [lỗi] {}catch[error]{

    & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ném [lỗi];thrownewError[error];

    & nbsp; & nbsp; & nbsp; & nbsp; }cuối cùng{}finally{

    & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; đang chờ trình điều khiển.quit [];await driver.quit[];

    & nbsp; & nbsp; & nbsp; & nbsp; }}

        }}

    Dưới đây là việc triển khai cuối cùng của tự động hóa selenium với JavaScript sẽ được chạy trên lưới Selenium dựa trên đám mây của Lambdatest. Finally, it’s time to run the test on the LambdaTest grid. Trigger the following command on the terminal to run the automation testing with Selenium JavaScript.

    & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; constdata = Await WebsCrapingWithLamBDatest [];

    & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; phản hồi.status [200] .Json [dữ liệu];

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; phản hồi.status [500] .json [{

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Thông báo: 'Đã xảy ra lỗi máy chủ',

  • Khi sử dụng selenium để quét web, nó có thể tự động tải xuống các tệp không cần thiết. Chẳng hạn, nếu bạn chỉ quan tâm đến dữ liệu văn bản của trang web, Selenium cũng sẽ tải xuống các tài sản [tức là, CSS, HTML, JS và các tệp khác] cần thiết để hiển thị trang web.
  • Nó tiêu thụ thời gian và tài nguyên khi sử dụng selenium webdriver vì nó tải xuống các tệp không cần thiết để hiển thị trang web.
  • Việc quét web với selenium chậm vì nó chờ toàn bộ trang được tải trước khi bạn có thể bắt đầu truy cập dữ liệu. Để tìm hiểu thêm về sự chờ đợi, bạn có thể đọc qua blog này về các loại chờ ở Selenium.

Xem video này để tìm hiểu những gì chờ đợi trong selenium và cách xử lý chúng bằng các phương pháp khác nhau như tạm dừng mã hóa cứng và bằng cách kết hợp chờ đợi rõ ràng với các mẫu thiết kế khác nhau.

Cho đến nay, chúng tôi đã chi tiết một vài nhược điểm mà bạn cần phải chú ý khi chụp web với JavaScript và Selenium. Hãy cùng khám phá những khả năng và lợi ích vô hạn của việc sử dụng selenium để cạo web.

Nếu bạn là một nhà phát triển JavaScript nghiêm túc về kiểm tra tự động hóa, chứng nhận này sẽ cung cấp cho bạn các kỹ năng khó khăn và kiến ​​thức chuyên sâu cần thiết để vượt trội trong bất kỳ vai trò tự động hóa JavaScript nào.

Dưới đây, một cái nhìn thoáng qua về chứng nhận Selenium Javascript 101 từ Lambdatest:

Bản tóm tắt

Quét web là một kỹ thuật quan trọng để trích xuất dữ liệu. Nó loại bỏ quá trình thủ công để trích xuất dữ liệu công khai. Quét web cũng rất chính xác và ít tốn thời gian hơn. Nó cũng có thể được cấu hình để truy xuất các trang web động bằng Selenium và JavaScript.

Trong blog này về việc quét web với JavaScript và Selenium, chúng tôi đã khám phá những lợi ích của việc quét web, không thể được nhấn mạnh quá mức, các công cụ cạo web khác nhau và selen là công cụ tốt nhất để kiểm tra tự động và các công cụ quét web động.

Chúng tôi đã loại bỏ tất cả nội dung của kênh YouTube chính thức của Lambdatest và chuyển đổi chúng thành JSON, tự động trích xuất các tiêu đề và tác giả để tạo ma trận tác giả, trong số những hiểu biết hữu ích khác.

Nếu bạn quan tâm đến việc tìm hiểu thêm về việc quét web bằng cách sử dụng các ngôn ngữ khác như C#, bạn có thể xem qua bài viết này về việc cạo các trang web động bằng Selenium và C#.

Câu hỏi thường gặp [Câu hỏi thường gặp]

Selenium có thể được sử dụng để quét web không?

Selenium là một công cụ mạnh mẽ để xẹp web và tự động hóa các trình duyệt. Mặc dù được biết đến nhiều nhất với khả năng bắt chước các hành động của người dùng, nhiều tính năng khác được tích hợp vào khung tự động hóa trình duyệt.

JavaScript có tốt hơn Python cho việc cạo web không?

Python thường là ngôn ngữ ưa thích cho các trang web cào do sự phổ biến và thư viện để phân tích các trang web được gọi là đẹp. Tuy nhiên, Python cũng có thể tận dụng JavaScript, có thể hữu ích cho các lập trình viên có kinh nghiệm với ngôn ngữ đó.

Bài Viết Liên Quan

Chủ Đề