9

Tôi quan tâm đến việc tự động nhập dữ liệu lặp đi lặp lại trong một số biểu mẫu cho một trang web tôi thường xuyên. Cho đến nay các công cụ tôi đã tìm kiếm sẽ cung cấp hỗ trợ cho điều này trong một thời trang không đầu có thể là Selenium WebDriver và Mechanize.Trình Duyệt Web Selenium vs Cơ chế

Câu hỏi của tôi là, có sự khác biệt cơ bản về kỹ thuật khi sử dụng một lần so với cách khác không? Selenium chủ yếu được sử dụng để thử nghiệm. Tôi cũng nhận thấy một số người sử dụng nó để làm chính xác những gì tôi đang tìm kiếm, và đó là tự động nhập dữ liệu. Thử nghiệm trở thành lợi ích thứ hai trong trường hợp đó.

Có lý do nào để không sử dụng Selenium cho những gì tôi muốn thực hiện qua Cơ chế hóa không? Liệu nó không quan trọng và cả hai công cụ này sẽ hoạt động?

Tôi không hỏi cái nào tốt hơn, tôi hỏi đó là công cụ thích hợp cho công việc. Có lẽ tôi không hiểu tiền đề đằng sau mục đích của từng công cụ.

Trả lời

28

Đây là các công cụ hoàn toàn khác nhau mà phần nào "chéo" trong phạm vi trích xuất web, tự động hóa web, phạm vi trích xuất dữ liệu tự động.

mechanize là công cụ được sử dụng rộng rãi và được sử dụng rộng rãi để duyệt web có lập trình với nhiều tính năng được tích hợp sẵn, như xử lý cookie, lịch sử trình duyệt, gửi biểu mẫu. Điều quan trọng cần hiểu ở đây là mechanize.Browser không phải là trình duyệt thực sự, nó không thể thực thi và hiểu javascript, nó không thể gửi yêu cầu không đồng bộ thường cần thiết để tạo trang web.

Đây là nơi selenium được phát hành - đây là một công cụ tự động hóa trình duyệt cũng được sử dụng rộng rãi trong việc cào web. selenium thường trở thành công cụ "thu gọn" - khi ai đó không thể xóa một trang web bằng mechanize hoặc RoboBrowser hoặc MechanicalSoup (lưu ý - một lựa chọn thay thế khác), ví dụ, javascript "nặng", lựa chọn thường là selenium. Với selenium bạn cũng có thể đi không đầu, tự động hóa trình duyệt PhantomJS hoặc có virtual display. Như một nhược điểm thường được đề cập, hiệu suất thường được đề cập - với selenium bạn đang làm việc với trang đích là người dùng thực trong trình duyệt web đang tải thêm tệp cần thiết để tạo trang, yêu cầu XHR, hiển thị v.v.

Và chính điều này không có nghĩa là bạn nên sử dụng selenium ở khắp mọi nơi - chọn công cụ một cách khôn ngoan, chọn nó vì nó phù hợp với vấn đề tốt hơn, không phải vì bạn quen thuộc hơn với một công cụ.


Cũng lưu ý rằng trước hết bạn nên xem xét sử dụng API (nếu được cung cấp bởi trang web mục tiêu) thay vì đi xuống web-scraping. Và, nếu nói đến nó, là một web-scraping tốt công dân:

+0

"chọn nó vì nó phù hợp với các vấn đề tốt hơn, không phải vì bạn đã quen thuộc hơn với một nhạc cụ. " Nói hay lắm! – thuzhf

Các vấn đề liên quan