뉴스 데이터를 체크해서 맞지 않는 기사를 삭제하는 일을 하고 있음.
기사 타이틀에 우연히 기업 이름이 들어갔다는 이유로 상관없는 뉴스들이 흘러들어온 경우가 그 예임.
(예: '남성'이라는 기업 뉴스에 '대한민국 남성 30대, ㅇㅇ브랜드 선호' 라는 뉴스가 들어와있음.)
하루는 안그래도 삭제할게 많은 기업인데 이틀내내 300~500개 넘는 기사를 지우다보니 이골이 났음.
그래서 '기업 이름'을 기사 타이틀에서 강조해서 주변 단어를 더 빨리 읽고 바로바로 삭제하기위해 코드를 짜봄.
1차 만든거
var tr = document.getElementsByClassName('table-bordered')[1].getElementsByTagName('tr');
var input = document.getElementsByClassName('table-bordered')[1].getElementsByTagName('input');
var sum = 0;
for (k=1; k<tr.length; k++) {
if (tr[k].getElementsByTagName('td')[3].textContent == "대상") {
tr[k].getElementsByTagName('input')[0].checked = true;
tr[k].getElementsByTagName('td')[2].style.backgroundColor="yellow";
}
}
for (i=0; i<input.length; i++) {
if (input[i].checked == true) {
sum += 1;
}
}
console.log(sum);
[원했던 것]
1) '대상'을 검색하면 '대상홀딩스'와 같이 다른 기업들도 검색되서, 문제 기사가 많은 '대상' 기업 기사만 체크.
2) 내용을 빨리 파악할 수 있도록 기사 타이틀에서 '대상' 라는 글씨만 스타일 변경.
3) 체크박스 미리 체크.
4) 몇개 체크했는지 확인.
[현실]
2) 특정 텍스트를 어떻게 선택해야하는지 모르겠음. 몇날며칠 고민해도 모르겠어서 그냥 기사 타이틀을 통으로 강조해놓음.
지금보면 참.. sum은 왜 따로 반복문 돌렸는지도 모르겠고..^^ 하지만 아직 반복문이나 프로퍼티에 익숙하지 않은 상태라 그때는 만들어놓고 매우 행복해했음.
2차 만든거
var a = document.querySelectorAll('a');
var stn = 0;
for(i=0; i<a.length; i++) {
if(a[i].textContent.indexOf('대상 청정원') != -1 ||
a[i].textContent.indexOf('대상,') != -1 ||
a[i].textContent.indexOf('대상 주식') != -1) {
continue;
} else if(a[i].textContent.indexOf('대상') != -1) {
var start = a[i].textContent.indexOf('대상');
var findText = a[i].textContent.slice(start , (start + 2));
findText = findText.fontcolor('#f77f00').bold();
a[i].innerHTML = a[i].innerHTML.replace('대상', findText);
a[i].parentNode.parentNode.querySelector('input').checked = true;
stn++;
}
}
stn;
[수정한 것]
1. querySelector로 tr이 아닌 a태그로 찾기.
2. 특정 텍스트만 강조
어제 스터디카페에서 공부할 때 우연히 setSelectionRage()라는 메소드를 보고 갑자기 생각나서 수정하려했음 ---> 근데 저건 input, textarea에서만 쓰임 ---> 좌절 ---> 뭔가 indexOf랑 slice로 선택할 수 있다는 생각이 팍 듬 ---> 특정 텍스트 선택은 이제 가능함. 근데 그부분만 어떻게 바꾸지 변수에 텍스트를 받아서 거기서 또 인덱스로 세서 변경해서 다시 집어넣어야하나이러다가 replace를 써보니까 되었다!
3. 거를 조건 추가
저 문구들이 들어간 기사 타이틀은 정상적인 기사라서 제외용으로 빼놓음.
[알게된 것]
- continue : 사용처가 이런거구나라고 알게됨
- fontcolor() : DOM 함수?라는데
- slice : 연습
- indexOf : 많이 친해짐
'기타등등 > 뭔가만들어보기' 카테고리의 다른 글
💙종목코드를 종목이름으로 변경 ---> 하기전에 (0) | 2020.11.30 |
---|---|
특정 페이지 테이블에서 텍스트 긁어오기 (0) | 2020.11.22 |
💚엑셀 데이터 중 서비스별 매출 합계 구하기 (0) | 2020.10.27 |
💙종목코드를 종목이름으로 변경 (0) | 2020.10.21 |
특정 페이지 텍스트와 a 태그에 있는 데이터 빼기 (0) | 2020.09.22 |