1. import requests
  2. def paginate_response_headers(url, max_pages=5):
  3. """
  4. Paginates response headers for debugging, handling edge cases.
  5. Args:
  6. url (str): The URL to fetch headers from.
  7. max_pages (int): Maximum number of pages to retrieve.
  8. Returns:
  9. list: A list of dictionaries, where each dictionary represents a page
  10. of response headers. Returns an empty list if there's an error.
  11. """
  12. all_headers = []
  13. for page in range(1, max_pages + 1):
  14. try:
  15. response = requests.head(url, allow_redirects=True) #Use HEAD request for efficiency
  16. response.raise_for_status() # Raise HTTPError for bad responses (4xx or 5xx)
  17. headers = dict(response.headers)
  18. all_headers.append(headers)
  19. print(f"Page {page} headers retrieved.")
  20. except requests.exceptions.RequestException as e:
  21. print(f"Error fetching headers: {e}")
  22. return [] # Return empty list on error
  23. return all_headers
  24. if __name__ == '__main__':
  25. test_url = "https://www.example.com"
  26. headers_list = paginate_response_headers(test_url, max_pages=3)
  27. if headers_list:
  28. for i, headers in enumerate(headers_list):
  29. print(f"\n--- Page {i+1} Headers ---")
  30. for key, value in headers.items():
  31. print(f"{key}: {value}")
  32. else:
  33. print("No headers retrieved.")

Add your comment