URL 추출기 (url extractor)

rryan 2023. 11. 11. 15:50

대화내용에서 URL을 추출할 수 있습니다. 

예시 이미지


 

전처리 

- 카카오톡 오픈 채팅방에서 url을 수집이 필요합니다. 

 

1. 정규표현식을 사용해서 URL을 추출합니다. 

const text = "https://www.example.com" // 입력받은 문자열 
const urlRegex = /https?:\/\/[^\s]+/g; // URL패턴 정규표현식
const extracted = text.match(urlRegex) || []; // null 이라면 빈배열 할당

 

2. Set을 사용해서 중복을 제거합니다. 

const urls = [...new Set(extracted)]

 

3. 도메인을 기준으로 정렬합니다.  

// [array(2)] 구조  
// [["example.com", ["example.com/1","example.com/2"]], [...]]
const urlGroups = new Map();

// 도메인별로 그룹화 
urls.forEach((url)=> {
	// 도메인 할당
	const domain = new URL(url).hostname
    if (urlGroups.has(domain)) {
    	// ["a.com", ["a.com/b", "a.com/c", "a.com/d",]]
        urlGroups.get(domain).push(url);        
    } else {
    	// ["a.com", ["a.com/b"]]
    	urlGroups.set(domain, [url]);
    }    
})

// 맵에서 리스트로 변환 
const urlEntries = Array.from(urlGroups.entries());

// 오른차순 정렬 
urlEntries.sort((a, b) => b[1].length - a[1].length);

 

4. 접두사 접미사를 추가할 수 있습니다.   

list.map((item, index)=>{
     <li key={index}>
        {prefix}
        {url}
        {suffix}
     </li>
})

 

'' 카테고리의 다른 글

어둠의전설 체마계산기 (lod calculator)  (0) 2023.09.25