| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- import requests
- # 初始化cookie列表
- cookies = [
- {'cookie': 'cookie1'},
- {'cookie': 'cookie2'},
- {'cookie': 'cookie3'},
- {'cookie': 'cookie4'},
- {'cookie': 'cookie5'},
- {'cookie': 'cookie6'},
- {'cookie': 'cookie7'},
- {'cookie': 'cookie8'},
- {'cookie': 'cookie9'},
- {'cookie': 'cookie10'}
- ]
- # 初始化超时计数器
- timeout_count = {cookie['cookie']: 0 for cookie in cookies}
- def make_request(cookie):
- try:
- response = requests.get('http://example.com', cookies=cookie, timeout=5)
- response.raise_for_status()
- return response
- except requests.exceptions.Timeout:
- return 'timeout'
- except requests.exceptions.RequestException as e:
- print(f"Request failed: {e}")
- return 'error'
- def main():
- global cookies, timeout_count
- for i in range(100):
- if not cookies:
- print("No more cookies available.")
- break
-
- all_cookies_failed = True
- for j in range(len(cookies)):
- current_cookie = cookies[(i + j) % len(cookies)]
- result = make_request(current_cookie)
-
- if result == 'timeout':
- timeout_count[current_cookie['cookie']] += 1
- print(f"Timeout for {current_cookie['cookie']}, count: {timeout_count[current_cookie['cookie']]}")
-
- if timeout_count[current_cookie['cookie']] >= 3:
- print(f"Removing {current_cookie['cookie']} from the pool.")
- cookies = [c for c in cookies if c != current_cookie]
- del timeout_count[current_cookie['cookie']]
- elif result == 'error':
- print(f"Error for {current_cookie['cookie']}")
- else:
- print(f"Request {i+1} successful with {current_cookie['cookie']}")
- timeout_count[current_cookie['cookie']] = 0 # Reset timeout count on success
- all_cookies_failed = False
- break
-
- if all_cookies_failed:
- print(f"All cookies failed for request {i+1}. Skipping to the next request.")
- if __name__ == "__main__":
- main()
|