210421_파이썬을 이용한 웹 크롤링_13

정재현·2021년 4월 21일
0

TIL2

목록 보기
52/79

어제에 이어서 진행한다.
오늘 프론트 작업을 해주시는 팀원분께 2가지를 전달했다.
1. 언론사 페이지 접근 시에, 모든기사 버튼이 클릭이 디폴트로 노출.
2. 각 버튼들마다 중복 체크가 안되게끔 작업 진행.

사실 2번은 언론사 버튼을 클릭하면, 크롤링이 진행되고 새로고침을 하면서 데이터(기사)를 노출되게 하려고 해서
필요없을 작업이라고 생각되지만 예외적인 상황이 있을 수 있기때문에 작업을 부탁드렸다.

자~ 그래서 오늘은 어떤 작업을 하냐면,
특정 언론사의 데이터만 나오는 작업을 진행한다.


아 어제 3번을 실수했다.
저건 원하는 언론사를 검색하는 것이지, 기사 키워드를 검색하는게 아니다.
고로 코드에서 keyword값이 바뀌는게 아니라 if문을 활용할 예정이다.


그리고 전제 사항이 있는데,
지금은 서버에 붙은게 아니라서 코드 상에서만 기능을 구현하려 한다.
만약 web에 붙게된다면 그 엘리멘트의 id값을 지정해주면 될 것이라고 예상한다.
(쉬울까..? ㅠ_ㅠ 두렵다)


뭐 우선 이런식으로 해줬다.
"SBS" 저 부분이 특정 언론사의 이름이고
그 언론사가 아니면 다시 올라가게 continue를 사용했다.

결과는~

근데 문제는 이미지다.


많은 생각을 했다.
이미지와 언론사의 관계에 대해서.
보통 업무를 할 때 사용하던 부모 엘리멘트의 값을 가져올까?

서치를 해봤고 .parent라는 기능이 있긴해서 가져와보니
내가 원하는대로는 못가져왔고~

어떻게 할까.. 고민고민하다가
내일할까.. 했다.. ㅋㅋㅋㅋㅋ
그래도 계속 봐보자.. 해서
곰곰히.. 생각해보니
index 값을 부여하는거 어떤가? 라는 생각이 들었다.
우선 index 값을 for문을 돌때마다 지정해주는 것이다.
예를들어~
"연합뉴스" 언론사의 노출 순서는 몇번일까? 어떻게 알 수 있을까?

이렇게 알 수 있다.
x 라는 변수를 생성해서, if 조건문에 들어올 때마다 1씩 증가해준다.
그 뜻은 연합뉴스가 아니면 1씩 증가한다.
연합뉴스를 만나면 정보를 프린트해준다.
이때의 x값이 노출순서이겠지?

그러면, 이미지를 다운로드와 읽어주는 코드에서

x 값과 기존에 있던 n값을 이용해서 둘이 같다면 저장해주면 된다는 말!
그치만 여기서 혼란이 생겼었다.
x 값이 계속 10으로 고정되었다는 점.
분명 나는 위에서 print(x) 로 x가 4인것을 확인했는데, (연합뉴스 기사가 4번째로 노출되고 있다는 말)
내려와 보니 x가 10이더라..?
debug를 걸고 위 코드를 다시 분석해보니
if문을 거치고 print를 하고나서 다시 위로 올라가서 x값이 증가하게끔 되로록 동작하고 있었기에
y라는 변수를 다시 선언 후, print 하고 난 직후의 x 값을 넣어줬다. ㅎ_ㅎ
그렇게되면 다시 밑으로 내려와서
n과 y의 값이 같을 때만 이미지를 다운로드 해주면 된다.
그말은 즉슨, "연합뉴스"의 코로나백신 기사 이미지만 다운로드 한다는 것.

코드의 결과이고,

실제로 현재시간 기준으로 노출되고 있던 기사 순서이다.

오늘 할당량 끝~~ ^_^

오늘의 코멘트: 많이컸어~ 나자신~ 칭찬해~~ 쿠헤헤 뿌듯쓰

profile
"돈받고 일하면 프로다"

0개의 댓글