2009-12-19 16 views
9

Tôi đã có một trình thu thập dữ liệu web python và tôi muốn phân phối các yêu cầu tải xuống trong số nhiều máy chủ proxy khác nhau, có thể chạy mực (mặc dù tôi đang mở để lựa chọn thay thế). Ví dụ: nó có thể hoạt động theo kiểu vòng tròn, trong đó request1 chuyển tới proxy1, request2 thành proxy2 và cuối cùng lặp lại. Bất kỳ ý tưởng làm thế nào để thiết lập này?Quay proxy cho web scraping

Để làm cho khó hơn, tôi cũng muốn có thể tự động thay đổi danh sách proxy sẵn có, giảm bớt một số proxy và thêm người khác.

Nếu có vấn đề, địa chỉ IP được gán động.

Cảm ơn :)

Trả lời

6

Làm bánh xích của bạn có một danh sách proxy và với mỗi yêu cầu HTTP cho nó sử dụng proxy tiếp theo trong danh sách theo kiểu round robin. Tuy nhiên, điều này sẽ ngăn bạn sử dụng các kết nối liên tục HTTP/1.1. Việc sửa đổi danh sách proxy cuối cùng sẽ dẫn đến việc sử dụng một danh sách proxy mới hoặc không sử dụng proxy.

Hoặc có một số kết nối mở song song, một đến từng proxy và phân phối các yêu cầu thu thập thông tin của bạn tới từng kết nối mở. Động lực có thể được thực hiện bằng cách có connetor đăng ký chính nó với điều phối yêu cầu.

+0

Cảm ơn, đã cho tôi một số ý tưởng hay, chủ yếu sử dụng bộ redis để lưu trữ danh sách proxy và lệnh srandmember để nhận proxy. – Jacob

+0

@Jacob Bạn có thể chia sẻ mã mẫu của bạn hoặc repo github về cách bạn thực hiện điều này? – x0v

14

Tôi đã thiết lập proxy quay bằng HAProxy + DeleGate + Nhiều trường hợp Tor. Với Tor, bạn không có quyền kiểm soát băng thông và độ trễ tốt nhưng nó rất hữu ích cho việc cào web. Tôi vừa mới công bố một bài báo về đề tài này: Running Your Own Anonymous Rotating Proxies

+3

Điều này khá thú vị. Thật không may ngày càng nhiều các trang web dường như cấm các địa chỉ ip liên quan đến các nút thoát Tor. – ChrisArmstrong

+0

@ChrisArmstrong Yup. Đây là một cái gì đó để xem xét nếu bạn đang nghĩ về việc đi tuyến đường này. – Dodgie