1. import re
  2. def deduplicate_session_cookies(cookie_string):
  3. """
  4. Deduplicates session cookies from a string.
  5. Args:
  6. cookie_string: A string containing semicolon-separated cookies.
  7. Returns:
  8. A list of unique session cookies.
  9. """
  10. if not cookie_string:
  11. return []
  12. cookies = cookie_string.split(';') # Split the cookie string into individual cookies
  13. session_cookies = []
  14. seen = set() # Use a set to track seen cookies for efficient uniqueness check
  15. for cookie in cookies:
  16. cookie = cookie.strip() # Remove leading/trailing whitespace
  17. if not cookie: # Skip empty cookies
  18. continue
  19. # Extract the cookie name and value
  20. match = re.match(r'^([^=]+)=([^;]+)$', cookie)
  21. if match:
  22. name = match.group(1).strip()
  23. value = match.group(2).strip()
  24. # Check if the cookie is a session cookie (e.g., contains "session" or "PHPSESSID")
  25. if 'session' in name.lower() or 'phpsessid' in name.lower():
  26. #Convert cookie to tuple (name, value) for hashability
  27. cookie_tuple = (name, value)
  28. if cookie_tuple not in seen:
  29. session_cookies.append(cookie)
  30. seen.add(cookie_tuple)
  31. return session_cookies
  32. if __name__ == '__main__':
  33. # Example usage
  34. cookie_data = "sessionid=12345; othercookie=abc; sessionid=12345; anothercookie=xyz; PHPSESSID=abcdefg; sessionid=67890;"
  35. deduplicated_cookies = deduplicate_session_cookies(cookie_data)
  36. print(deduplicated_cookies)

Add your comment