토요일, 10월 03, 2026

genomeweb 크롤링 네번째 업데이트

바이오 전문 매체인 genomeweb의 기사를 수집하는 스크립트가 지난 9월달에 비정상적으로 작동하는 것을 확인하고 문제를 확인하고 해당 문제를 해결하는 네번째 스크립트를 작성하게 되었네요.

원인은 모 다들 예상했던 대로 화면의 레이아웃 및 링크 구조 변경이었습니다. :)

음... AI가 코딩을 잘 작성해주다보니 크롤링 요청이 많지 않았나 싶네요 ㅎㅎ 

여튼 genomeweb 사이트가 리모델링을 하면서 문제가 발생하였던 터라 이를 해결하기 위해서 다시 크롤링 스크립트를 작성하였고 github에 잘 올라가 있습니다. :)

github >여기<


일단 전체 레이아웃이 변경되었다보니 어떤 내용들이 업데이트되었는지 한번 정리해보려고합니다. 

1. 기사 링크 확인 방법

기존 genomeweb에서는 디자인 모양(예를 들어 제목 글씨 크기가 큰 링크" h2", "h3" 태그)을 보고 찾아서 확인했데 리모델링 하면서 구조나 css가 복잡하게 되버렸더라구요.

그런데 한가지 맹점이 뉴스 gnw라는 깃발이 꼽혀있었습니다. ㅋ 그래서 기사의 URL에서 gnw-로 시작하는 주소만 골라내도록 하였습니다.

물론 이후에 다시 리모델링을 할 때 이 또한 변경해버릴 수 있다는 맹점이;; 

 

2. 기사 본문 추출 방법

기본 genomeweb에서는 특정 위치에서 <p>와 같은 글자 단락을 긁어오거나 특정 태그 사이에 있는 문장들을 가져와라는 단순한 규칙으로 본문 내용을 확인 할 수 있었는데, 이번에 리모델링 되면서 json형식으로 변경되기도 했고, 본문의 첫 문장만 쉽게 추출되도록 트릭이 숨겨져 있었습니다.

그러나 결국 html안에 원본 데이터가 있을 것으로 생각하고 찾아본 결과 특정한 element? tag에 있는 json구조안에 문장 문장별로 쪼개져 있는 것을 확인하고 특정 elemet의 json 구조의 내용을 파싱해서 기사 원본을 다시 재구성 할 수 있었습니다. 

여튼 결국은 html안에 답은 있었다 되겠습니다. :)


3. 브라우저 실행 방법

브라우저 방법은 리모델링과 상관없이 걍 파이썬 코드 작성시 headless 모드를 사용하면 되는 것이었는데 이번에 chromedriver 대신 selenium을 사용하면서 headless를 사용할 수 있게 되어서 크롤링 작업시 새창이 뜨는 것을 생략할 수 있었습니다. 기존 chromedriver에서 headless를 사용하면 매번 에러가 발생해서 어쩔 수 없이 파이썬 스크립트 실행할 때 마다 크롬 새창을 열었었는데, 이제는 그냥 조용히 스크립트가 작동합니다. :)


genomeweb에서 레이아웃구조를 변경한적이... 한 6년동안에는 없었는데 왜 갑자기 이 시점에서 레이아웃 리모델링을 진행하였는지 Orz 

크롤링으로 인한 서버부하가 감지되면.. 또 변경을 단행하고 누군가는 또 맹점을 파악해서 크롤링하는 스크립트를 만드는 작업이 계속되지 않을까 싶네요 :)






출처: @ye._.vely618

댓글 없음: