Lỗi khi kết nối tới webservice liên tục
Xin chào mọi người, em có một vấn đề thế này ạ. Em cần lấy dữ liệu từ 1 service bên khác để insert về database. Service đặt trong 1 vòng lặp, khi chạy được khoảng 100 lần thì kết quả trả về null, service bên kia không kết nối được nữa. Chờ khoảng 1, 2 tiếng sau kết nối lại kết nối được. Anh chị có kinh nghiệm có thể giải thích giúp em và hướng khắc phục được không ạ, em cần đồng bộ dữ liệu khá lớn (vòng lặp khoảng 10 000) lần. Em cảm ơn !
2 CÂU TRẢ LỜI
Một vài note:
- bạn bị chặn để người ta phòng tránh bị DDOS.
- scraping dữ liệu vốn là một môn công phu thuộc trường phái 'black art', nên không có phương án nào cho tất cả, tuỳ vào bài toán & cấu trúc dữ liệu mà bạn sẽ cần thiết lập phương án khác nhau.
Trong trường hợp của bạn thì có thể là API giới hạn 100 lần gọi API/h, có 2 thứ bạn có thể thử:
- sử dụng proxy, các thư viện scraping hiện đại đều cung cấp middleware kiểu này, ví dụ scrapy
- viết cronjob 1h chạy 1 lần
Khi bạn gửi quá nhiều request tới server A. server A sẽ block bạn lại luôn, vì cho rằng bạn đang tấn công.
bạn đặt giãn cách số lượng request ra sẽ không sao.
Còn cách thiết kế giống họ thì bạn google search: "throttle request" + ngôn ngữ lập trình bạn dùng.
Tks bạn, mình đếm thì cứ đến request 101 là bị, chắc họ giới hạn 100 request rồi
Thanh niên đi crawl dữ liệu từ bọn khác à :v