1. import requests
  2. from urllib.parse import urlparse
  3. from collections import defaultdict
  4. def remove_duplicate_requests(request_list):
  5. """
  6. Removes duplicate HTTP requests from a list, considering URL and method.
  7. Args:
  8. request_list: A list of dictionaries, where each dictionary represents an HTTP request
  9. and contains at least 'url' and 'method' keys.
  10. Returns:
  11. A list of unique HTTP requests.
  12. """
  13. seen_requests = set() # Use a set for efficient duplicate checking
  14. unique_requests = []
  15. for request in request_list:
  16. url = request['url']
  17. method = request['method']
  18. # Create a tuple of (url, method) for hashing
  19. request_tuple = (url, method)
  20. if request_tuple not in seen_requests:
  21. unique_requests.append(request)
  22. seen_requests.add(request_tuple)
  23. return unique_requests
  24. if __name__ == '__main__':
  25. # Example usage:
  26. sample_requests = [
  27. {'url': 'https://www.example.com', 'method': 'GET'},
  28. {'url': 'https://www.example.com', 'method': 'GET'}, # Duplicate
  29. {'url': 'https://www.google.com', 'method': 'GET'},
  30. {'url': 'https://www.example.com/path', 'method': 'POST'},
  31. {'url': 'https://www.google.com', 'method': 'GET'}, # Duplicate
  32. {'url': 'https://www.example.com', 'method': 'POST'}
  33. ]
  34. unique_requests = remove_duplicate_requests(sample_requests)
  35. for request in unique_requests:
  36. print(request)

Add your comment