import re
def deduplicate_session_cookies(cookie_string):
"""
Deduplicates session cookies from a string.
Args:
cookie_string: A string containing semicolon-separated cookies.
Returns:
A list of unique session cookies.
"""
if not cookie_string:
return []
cookies = cookie_string.split(';') # Split the cookie string into individual cookies
session_cookies = []
seen = set() # Use a set to track seen cookies for efficient uniqueness check
for cookie in cookies:
cookie = cookie.strip() # Remove leading/trailing whitespace
if not cookie: # Skip empty cookies
continue
# Extract the cookie name and value
match = re.match(r'^([^=]+)=([^;]+)$', cookie)
if match:
name = match.group(1).strip()
value = match.group(2).strip()
# Check if the cookie is a session cookie (e.g., contains "session" or "PHPSESSID")
if 'session' in name.lower() or 'phpsessid' in name.lower():
#Convert cookie to tuple (name, value) for hashability
cookie_tuple = (name, value)
if cookie_tuple not in seen:
session_cookies.append(cookie)
seen.add(cookie_tuple)
return session_cookies
if __name__ == '__main__':
# Example usage
cookie_data = "sessionid=12345; othercookie=abc; sessionid=12345; anothercookie=xyz; PHPSESSID=abcdefg; sessionid=67890;"
deduplicated_cookies = deduplicate_session_cookies(cookie_data)
print(deduplicated_cookies)
Add your comment