Bộ chọn python của nhà viết kịch
Playwright là một bộ công cụ tự động hóa trình duyệt phổ biến có thể được sử dụng trong web scraping để cạo nội dung web động hoặc ứng dụng web Show
Sử dụng Playwright, chúng tôi không cần phải thiết kế ngược và hiểu các công nghệ web phức tạp vì trình duyệt sẽ làm mọi thứ cho chúng tôi. Điều này làm cho Playwright trở thành một công cụ tuyệt vời để dễ dàng cạo dữ liệu mà không cần kiến thức phát triển web nâng cao Trong hướng dẫn thực tế chuyên sâu này, chúng ta sẽ xem cách cạo bằng Playwright và Python. Đối với điều đó, chúng tôi sẽ sử dụng một dự án cạo ví dụ bằng cách cạo co giật. TV Chúng tôi sẽ đề cập đến các câu hỏi phổ biến như cách Playwright hoạt động và so sánh với các đối thủ cạnh tranh. Cách thực hiện các tác vụ phổ biến như điều hướng trình duyệt, nhấp vào nút, nhập văn bản và phân tích dữ liệu; Quét các trang web động bằng trình duyệt web Để biết thêm về cách sử dụng trình duyệt, hãy xem bài viết giới thiệu đầy đủ của chúng tôi so sánh các công cụ phổ biến như Selenium, Playwright và Puppeteer Nhà viết kịch là gì?Playwright là bộ công cụ tự động hóa trình duyệt web đa nền tảng và đa ngôn ngữ. Nó chủ yếu được sử dụng như một bộ thử nghiệm trang web nhưng nó hoàn toàn có khả năng tự động hóa trình duyệt nói chung và quét web Sử dụng nhà viết kịch, chúng tôi có thể tự động hóa các trình duyệt web không đầu như Firefox hoặc Chrome để điều hướng trang web giống như con người. truy cập URL, nhấp vào nút, viết văn bản và thực thi javascript Nhà viết kịch cho phép chúng tôi giao tiếp với trình duyệt web thông qua mã Python Đây là một công cụ tuyệt vời để quét web vì nó cho phép quét các trang web động được hỗ trợ bằng javascript mà không cần phải đảo ngược hành vi của chúng. Nó cũng có thể giúp chặn vì trình quét đang chạy một trình duyệt hoàn chỉnh có vẻ giống con người hơn các yêu cầu HTTP độc lập Nhà viết kịch vs Selenium vs PuppeteerSo với các bộ công cụ tự động hóa trình duyệt phổ biến khác như Selenium hay Puppeteer, Playwright có một vài lợi thế
Nói cách khác, Playwright là một cải tiến ngang so với Selenium và Puppeteer. Tuy nhiên, mỗi bộ công cụ đều có thế mạnh riêng. Nếu bạn muốn tìm hiểu thêm, hãy xem các bài viết giới thiệu khác của chúng tôi
Thành lậpPlaywright cho Python có thể được cài đặt thông qua 5
Lệnh trên sẽ cài đặt gói playwright và trình duyệt playwright nhị phân. Để thu thập Playwright, tốt nhất nên sử dụng trình duyệt Chrome hoặc Firefox vì đây là những triển khai ổn định nhất và thường ít bị chặn nhất Mẹo. Nhà viết kịch trong REPLCách dễ nhất để hiểu Playwright là thử nghiệm nó trong thời gian thực thông qua Python REPL (Đọc, Đánh giá, In, Lặp lại) như ipython Bắt đầu từ 6, chúng tôi có thể khởi chạy trình duyệt viết kịch và thực hiện các lệnh tự động hóa trình duyệt trong thời gian thực để thử nghiệm và tạo nguyên mẫu cho trình quét web của chúng tôi
Dưới đây là sơ lược về những gì chúng tôi sẽ làm trong bài viết này qua con mắt của REPL 0. 00 / 1×Nhà viết kịch thông qua iPython REPLBây giờ, chúng ta hãy xem xét điều này chi tiết hơn Những thứ cơ bảnĐể bắt đầu, chúng ta cần khởi chạy một trình duyệt và bắt đầu một tab trình duyệt mới
Khi chúng tôi đã sẵn sàng trang trình duyệt của mình, chúng tôi có thể bắt đầu tìm kiếm web của Playwright mà chúng tôi chỉ cần một số tính năng của Playwright
Hãy xem các tính năng này thông qua một ví dụ thực tế. Nhiệm vụ của chúng ta trong Playwright cho bài tập này là
Điều hướng và Chờ đợiĐể điều hướng, chúng ta có thể sử dụng chức năng 7 sẽ hướng trình duyệt đến bất kỳ URL nào
Tuy nhiên, đối với các trang web sử dụng nhiều javascript như twitch. tv, mã 8 của chúng tôi có thể trả về dữ liệu sớm trước khi mọi thứ được tải. Để đảm bảo điều đó không xảy ra, chúng tôi có thể đợi một phần tử cụ thể xuất hiện trên trang. Nói cách khác, nếu danh sách video có trên trang thì chúng ta có thể giả định rằng trang đã được tải một cách an toàn. ________số 8 Ở trên, chúng tôi đã sử dụng chức năng 9 để đợi một phần tử được xác định bởi bộ chọn CSS của chúng tôi xuất hiện trên trangPhân tích dữ liệuVì Playwright sử dụng trình duyệt web thực với môi trường javascript nên chúng tôi có thể sử dụng khả năng phân tích cú pháp HTML của trình duyệt. Trong Playwright, điều này được thực hiện thông qua tính năng 0 1Đầu ra ví dụ 2Trong đoạn mã trên, chúng tôi đã chọn từng hộp kết quả bằng bộ chọn XPath và trích xuất chi tiết từ bên trong hộp đó bằng bộ chọn CSS Thật không may, khả năng phân tích cú pháp của các nhà viết kịch hơi rắc rối và có thể dễ dàng bị hỏng khi phân tích cú pháp các phần tử tùy chọn như trường 1 trong ví dụ của chúng tôi. Thay vào đó, chúng ta có thể sử dụng phân tích cú pháp Python truyền thống thông qua các gói parsel hoặc beautifulsoup hoạt động nhanh hơn nhiều và cung cấp API mạnh mẽ hơn 4Mặc dù công cụ định vị nhà viết kịch không phù hợp để phân tích cú pháp nhưng chúng rất phù hợp để tương tác với trang web. Tiếp theo, chúng ta hãy xem cách chúng ta có thể nhấp vào các nút và nhập văn bản bằng bộ định vị Nhấp vào nút và nhập văn bảnĐể khám phá nhấp chuột và nhập văn bản, hãy mở rộng co giật của chúng tôi. cạp tv với chức năng tìm kiếm
Trong nhà viết kịch để tương tác với các thành phần web, chúng tôi có thể sử dụng cùng chức năng 2 mà chúng tôi đã sử dụng trong phân tích cú pháp 6Ghi chú. công cụ định vị của nhà viết kịch không cho phép bộ chọn dẫn đến nhiều giá trị. Nó sẽ không biết cái nào để nhấp vào. Có nghĩa là, bộ chọn của chúng tôi phải là duy nhất cho một yếu tố mà chúng tôi muốn tương tác với Chúng tôi đã làm cho chức năng tìm kiếm hoạt động và trích xuất trang đầu tiên của kết quả, tuy nhiên, làm thế nào để chúng tôi có được các trang còn lại? Cuộn và phân trang vô hạnPhần kết quả stream của twitch. tv đang sử dụng phân trang cuộn vô hạn. Để truy xuất phần còn lại của kết quả trong trình quét Playwright của chúng tôi, chúng tôi cần liên tục cuộn đến kết quả cuối cùng hiển thị trên trang để kích hoạt tải trang mới Chúng tôi có thể làm điều này bằng cách cuộn xuống cuối toàn bộ trang nhưng điều đó không phải lúc nào cũng hoạt động trong các trình duyệt không đầu. Cách tốt hơn là tìm tất cả các phần tử và cuộn phần tử cuối cùng vào chế độ xem một cách rõ ràng Trong nhà viết kịch, điều này có thể được thực hiện bằng cách sử dụng bộ định vị và hàm 3. Chúng tôi sẽ tiếp tục cuộn kết quả cuối cùng vào chế độ xem để kích hoạt tải trang tiếp theo cho đến khi không còn kết quả mới nào xuất hiện 8Trong mã ví dụ ở trên, chúng tôi sẽ liên tục kích hoạt tải kết quả mới cho đến khi đạt đến cuối phân trang. Trong trường hợp này, mã của chúng tôi sẽ tạo ra hàng trăm kết quả được phân tích cú pháp Chức năng cao cấpChúng tôi đã đề cập đến các tính năng viết kịch phổ biến nhất được sử dụng trong quét web. điều hướng, chờ đợi, nhấp, nhập và cuộn. Tuy nhiên, có một vài tính năng nâng cao hữu ích cho việc cạo các mục tiêu quét web phức tạp hơn Đánh giá JavascriptNhà viết kịch có thể đánh giá bất kỳ mã javascript nào trong ngữ cảnh của trang hiện tại. Sử dụng javascript, chúng tôi có thể làm mọi thứ chúng tôi đã làm trước đây như điều hướng, nhấp và cuộn, v.v. Trên thực tế, nhiều chức năng viết kịch này được triển khai thông qua đánh giá javascript Ví dụ: nếu chức năng cuộn tích hợp bị lỗi, chúng tôi có thể xác định chức năng javascript cuộn của riêng mình và gửi nó tới Playwright 0Đoạn mã trên sẽ cuộn kết quả cuối cùng vào chế độ xem giống như trước đây nhưng nó sẽ cuộn trơn tru và đến tận cùng của đối tượng. Cách tiếp cận này có nhiều khả năng kích hoạt tải trang tiếp theo hơn so với chức năng 4 của PlaywrightĐánh giá Javascript là một tính năng mạnh mẽ có thể được sử dụng để loại bỏ các ứng dụng web phức tạp vì nó cho phép chúng tôi kiểm soát hoàn toàn các khả năng của trình duyệt thông qua javascript Chặn yêu cầu và phản hồiNhà viết kịch theo dõi tất cả các yêu cầu và phản hồi nền mà trình duyệt gửi và nhận. Trong quét web, chúng tôi có thể sử dụng điều này để sửa đổi các yêu cầu nền hoặc thu thập dữ liệu bí mật từ các phản hồi nền 1Trong ví dụ trên, chúng tôi xác định các hàm chặn của mình và đính kèm chúng vào trang viết kịch của chúng tôi. Điều này sẽ cho phép chúng tôi kiểm tra và sửa đổi mọi yêu cầu nền và tiền cảnh mà trình duyệt đưa ra Tài nguyên chặnQuét web bằng trình duyệt không đầu thực sự tốn nhiều băng thông. Trình duyệt đang tải xuống tất cả hình ảnh, phông chữ và các tài nguyên đắt tiền khác mà trình quét web của chúng tôi không quan tâm. Để tối ưu hóa điều này, chúng tôi có thể định cấu hình phiên bản Playwright của mình để chặn các tài nguyên không cần thiết này 2Trong ví dụ trên, chúng tôi đang xác định quy tắc chặn yêu cầu Playwright loại bỏ bất kỳ yêu cầu tài nguyên nền không mong muốn nào thuộc loại bị bỏ qua hoặc chứa các cụm từ bị bỏ qua trong URL (như google analytics) Chúng ta có thể thấy lượng dữ liệu được lưu trong tab Mạng của Devtools Với việc chặn, chúng tôi đã sử dụng lưu lượng truy cập ít hơn gần 4 lần Tránh chặnMặc dù Playwright đang sử dụng trình duyệt thực nhưng vẫn có thể xác định xem trình duyệt đó được kiểm soát bởi người dùng thực hay được tự động hóa bởi bộ công cụ tự động hóa. Để biết thêm về điều này, hãy xem bài viết mở rộng của chúng tôi về lấy dấu vân tay javascript và rò rỉ biến Javascript được sử dụng như thế nào để chặn Web Scraper? Giới thiệu về dấu vân tay javascript và cách củng cố các trình duyệt web tự động chống lại nó Giải pháp thay thế của ScrapFlyScrapFly API cung cấp các khả năng tương tự như Playwright thông qua kết xuất javascript và các tính năng kịch bản javacript cho phép truy cập vào hàng nghìn trình duyệt web tùy chỉnh có thể hiển thị các trang hỗ trợ javascript mà không bị chặn Sử dụng SDK ScrapFly, chúng tôi có thể sao chép các hành động giống như chúng tôi đã làm trong Playwright 3Giống như với Playwright, chúng tôi có thể điều khiển trình duyệt web để điều hướng trang web, nhấp vào nút, nhập văn bản và trả lại HTML được hiển thị cuối cùng cho chúng tôi để phân tích cú pháp Câu hỏi thường gặpĐể kết thúc phần giới thiệu này, chúng ta hãy xem một số câu hỏi thường gặp liên quan đến việc quét web với Playwright Làm cách nào để sử dụng proxy với Playwright?Chúng tôi có thể chỉ định địa chỉ IP proxy cho mỗi cơ sở trình duyệt của nhà viết kịch 4Làm cách nào để tăng tốc Máy cạo Playwright?Chúng tôi có thể tăng tốc đáng kể trình dọn dẹp bằng Playwright bằng cách đảm bảo rằng trình duyệt không đầu đang chặn hiển thị hình ảnh và phương tiện. Điều này có thể làm giảm đáng kể băng thông và tăng tốc độ cạo 2-5 lần. Để biết thêm, hãy xem phần Tài nguyên chặn Trình duyệt không đầu nào tốt nhất để sử dụng cho Playwright Scraping?Chrome không đầu hoạt động tốt nhất khi cạo bằng Playwright. Mặc dù vậy, Firefox thường có thể giúp tránh chặn và hình ảnh xác thực vì đây là trình duyệt ít phổ biến hơn. để biết thêm xem. Javascript được sử dụng như thế nào để chặn Web Scraper? Bản tóm tắtTrong phần giới thiệu chuyên sâu này, chúng tôi đã học cách sử dụng bộ công cụ tự động hóa trình duyệt web Playwright để quét web. Chúng tôi đã khám phá các tính năng cốt lõi như điều hướng, nhấp vào nút, nhập liệu và phân tích dữ liệu thông qua co giật trong đời thực. ví dụ cạp tv Chúng tôi cũng đã xem xét các tính năng nâng cao hơn như chặn tài nguyên có thể giảm đáng kể mức sử dụng băng thông của trình quét web do trình duyệt của chúng tôi cung cấp. Tính năng tương tự cũng có thể được sử dụng để chặn các yêu cầu nền của trình duyệt để trích xuất các chi tiết như cookie hoặc sửa đổi kết nối |