Cách thiết lập Proxy trong Selenium để thu thập dữ liệu web

Cách thực hiện , Python , Proxy ,27-11-20245 phút đọc

Khi làm việc với Selenium để thu thập dữ liệu web hoặc tự động hóa, việc tích hợp proxy là điều bắt buộc. Proxy cho phép bạn bỏ qua lệnh cấm, giới hạn tốc độ và hạn chế địa lý, giúp các tác vụ của bạn liền mạch và hiệu quả. Nhưng việc cấu hình proxy trong Selenium có thể là một thách thức, đặc biệt nếu bạn đang xử lý xác thực hoặc cần theo dõi các yêu cầu HTTP. Đó là lúc Selenium Wire xuất hiện.

Dây Selen

Selenium Wire là phiên bản mở rộng của Selenium, bổ sung thêm nhiều tính năng nâng cao bằng cách cho phép bạn dễ dàng xác thực proxy, chặn các yêu cầu và phản hồi HTTP cũng như gỡ lỗi lưu lượng mạng.

Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách thiết lập proxy trong Selenium bằng cách sử dụng dây selentrình quản lý webdriver. Thông thường, bạn cần tải xuống các tệp nhị phân cho trình điều khiển web từ trình duyệt và duy trì cập nhật thường xuyên. trình quản lý webdriver đơn giản hóa quá trình này bằng cách xử lý các tác vụ này cho bạn.

Đến cuối blog này, bạn sẽ có một thiết lập Selenium được cấu hình đầy đủ phù hợp với ProxyScrape proxy, sẵn sàng giải quyết mọi thách thức bạn gặp phải. Hãy cùng bắt đầu nhé!

TÓM LẠI

Để truy cập toàn bộ tập lệnh mà không cần xem toàn bộ hướng dẫn, hãy nhấp vào liên kết này để sao chép toàn bộ mã.

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

Trước khi tìm hiểu cách thiết lập proxy trong Selenium, hãy đảm bảo bạn đã cài đặt và sẵn sàng các công cụ và thư viện sau:

  • Python đã cài đặt
    • Đảm bảo bạn đã cài đặt Python 3.7 trở lên trên hệ thống của mình.
    • Bạn có thể tải xuống phiên bản mới nhất từ trang web chính thức của Python .
  • Các gói Python bắt buộc (Cài đặt Pip)
    • dây selen
    • trình quản lý webdriver

Chạy lệnh sau để cài đặt tất cả các phụ thuộc:

pip cài đặt selenium-wire webdriver-manager

Lưu ý: Bạn có thể gặp lỗi “ ModuleNotFoundError: No module named blinker._saferef ”. Lỗi này có thể được giải quyết bằng cách hạ cấp thư viện blinker xuống phiên bản 1.7.0

  • Bắt đầu bằng chữ cái đầu tiên Gỡ cài đặt phiên bản hiện tại của đèn nháy
pip gỡ bỏ cài đặt blinker
  • Sau đó cài đặt phiên bản cụ thể được đề cập ở trên:
đèn nháy cài đặt pip == 1 . 7 . 0

Với các điều kiện tiên quyết đã sẵn sàng, chúng ta hãy chia nhỏ cấu hình tập lệnh thành ba bước đơn giản:

Thiết lập Proxy trong Selenium: Script

Bây giờ chúng ta đã đề cập đến các điều kiện tiên quyết, hãy chuyển sang tập lệnh thực tế. Hướng dẫn từng bước này sẽ giúp bạn tích hợp ProxyScrape proxy dân cư với Selenium sử dụng dây selentrình quản lý webdriver.

1. Nhập thư viện cần thiết

Chúng ta bắt đầu bằng cách nhập các thư viện cần thiết:

nhập re từ seleniumwire nhập webdriver từ selenium.webdriver.chrome.service nhập Service từ selenium.webdriver.chrome. options nhập Options từ webdriver_manager.chrome nhập ChromeDriverManager

2. Cấu hình Proxy

Xác định của bạn ProxyScrape chi tiết proxy:

proxy_address = "rp. proxyscrape .com:6060" proxy_username = "tên_người_dùng_proxy_của_bạn" proxy_password = "mật_khẩu_proxy_của_bạn"
  • Thay thế chỗ giữ chỗ (tên người dùng proxy, mật khẩu proxy) với thực tế của bạn ProxyScrape giấy chứng nhận.
  • rp. proxyscrape .com:6060 là ProxyScrape điểm cuối proxy dân dụng.

3. Tùy chọn dây Selenium

Thiết lập proxy trong Selenium Wire:

sw_options = {
   'proxy': {
       'http': f'http://{proxy_username}:{proxy_password}@{proxy_address}',
       'https': f'https://{proxy_username}:{proxy_password}@{proxy_address}',
   }
}

4. Cấu hình tùy chọn Chrome

Tối ưu hóa cài đặt Chrome để có hiệu suất tốt hơn:

chrome_options = Tùy chọn () chrome_options .add_argument ( "--start-maximized" ) chrome_options .add_argument ( "--no-sandbox" ) chrome_options .add_argument ( "--disable-dev-shm-usage" )

5. Khởi tạo WebDriver

Cài đặt dây selen với trình quản lý webdriver:

dịch vụ = Dịch vụ(ChromeDriverManager().install()) trình điều khiển = webdriver.Chrome( dịch vụ = dịch vụ, seleniumwire_options = sw_options, tùy chọn = chrome_options)
  • ChromeDriverManager: Tự động tải xuống và thiết lập tệp nhị phân ChromeDriver phù hợp với phiên bản trình duyệt của bạn.
  • seleniumwire_options: Cấu hình proxy cho Selenium Wire.
  • tùy chọn: Áp dụng cài đặt dành riêng cho Chrome.

6. Truy cập trang web mục tiêu

Điều hướng đến ProxyScrape Đánh giá điểm cuối để kiểm tra proxy của bạn:

trình điều khiển. lấy ( 'https://ssl-judge2.api. proxyscrape .com/' )
  • ProxyScrape Judge: Điểm cuối này trả về thông tin về proxy đang được sử dụng, chẳng hạn như địa chỉ IP và tiêu đề của bạn.

7. Phân tích phản hồi

Trích xuất và hiển thị địa chỉ IP proxy của bạn bằng regex:

# Ví dụ: Trích xuất IP từ phản hồi response = driver.page_source # sử dụng biểu thức chính quy đơn giản để phân tích cú pháp origin ip print ( "Response:" , response) print ( "IP của bạn là:" , re.search( "HTTP_X_FORWARDED_FOR = (\d+\.)+\d+" , response).group().split( "=" )[-1]) # thoát khỏi phiên bản trình duyệt driver.quit()
  • Giải thích về Regex:
    • Phù hợp với tiêu đề HTTP_X_CHUYỂN_ĐỔI_CHO và trích xuất IP được proxy
    • Chia nhỏ kết quả để cô lập địa chỉ IP

Phần kết luận

Tóm lại, sử dụng proxy dân dụng ProxyScrape với Selenium Wire là giải pháp mạnh mẽ cho bất kỳ ai cần khả năng tự động hóa và thu thập dữ liệu web nâng cao với quyền riêng tư và bảo mật được cải thiện.

Bằng cách làm theo hướng dẫn này, bạn có thể thiết lập một môi trường liền mạch không chỉ bỏ qua các hạn chế mà còn yêu cầu nỗ lực cấu hình tối thiểu. Phương pháp này tận dụng các công cụ mạnh mẽ như Selenium WireWebDriver Manage r để quản lý và định tuyến lưu lượng truy cập hiệu quả thông qua proxy, đảm bảo các tác vụ thu thập dữ liệu của bạn vẫn hiệu quả và đáng tin cậy.

Nếu bạn cần hỗ trợ về web scraping hoặc có thắc mắc về sản phẩm của chúng tôi, đừng ngần ngại liên hệ với chúng tôi qua trò chuyện trực tiếp. Bạn cũng có thể tham gia cộng đồng Discord của chúng tôi để được hỗ trợ và cập nhật.