Today I Learned
날짜
2024년 12월 30일 월요일
내용
되는게 정말 단 하나도 없는 닶도 없는 날이다.
네이버 상품 상세정보 조회하기
매주 월요일 오전, 네이버 상품 상세정보에 추가해놓은 이미지를 새로운 것으로 업데이트해야 한다. 이때 사용자가 상품 상세페이지에서 배너 이미지를 지웠다면 업데이트를 진행하지 않고 연동 중지 상태로 멈춘다. 따라서 업데이트 진행은 상품 상세정보에 저번주에 생성한 이미지가 있는 지에 따라 결정된다.
배너이미지의 HTML은 일정한 형식을 가진다. <a>
태그로 둘러쌓여있고, 안에는 <img>
태그가 있다. 이미지의 링크는 S3인데 내부 디렉토리도 정해진 규칙이 있다. 그래서
1
2
if image_html in res["originProduct"]["detailContent"]:
connecting_status = ConnectionStatus.CONNECTED.value
상품 상세정보 HTML을 받아와 내부에 string이 포함되어 있는지를 확인하는 로직을 사용했다. 대다수의 경우는 이게 잘 된다. 언제나 문제는 예외가 있다는 것인데…
아래가 집어넣는 HTML인데
1
2
3
4
<a href="https://www.instagram.com/{instagram_account.username}">
<img src="{image_url}" style="display: block; width: 100%; max-width: 860px; margin: 0 auto;" />
</a>'
1
2
3
4
5
6
7
8
9
10
11
<div class="se-component se-image se-l-default" id="SE-1f4d187c-ac4d-11ef-9402-bdc1d6ecf2d0">
<div class="se-component-content se-component-content-fit">
<div class="se-section se-section-image se-l-default se-section-align-">
<div class="se-module se-module-image" style="">
<a class="se-module-image-link __se_image_link __se_link" style="" onclick="return false;" data-linktype="img" data-linkdata="{"id":"SE-1f4d187c-ac4d-11ef-9402-bdc1d6ecf2d0","src":"https://s3.ap-northeast-2.amazonaws.com/insta.a-review.co/public/banner_images/x0a1jv8m/60/20241104/%EB%82%98%EC%99%80%EC%95%84%EA%B8%B0%20%ED%9C%B4%EB%8C%80%EC%9A%A9%20%EC%95%84%EA%B8%B0%EB%B3%80%EA%B8%B0%EC%BB%A4%EB%B2%84%20%EC%A0%91%EC%9D%B4%EC%8B%9D%20%EC%8B%9C%ED%8A%B8%20%EC%9C%A0%EC%95%84%20%EC%96%B4%EB%A6%B0%EC%9D%B4%20%EB%B0%B0%EB%84%88.png","originalWidth":"1000","originalHeight":"448","linkUse":"false","link":""}">
<img src="https://s3.ap-northeast-2.amazonaws.com/insta.a-review.co/public/banner_images/x0a1jv8m/60/20241104/%EB%82%98%EC%99%80%EC%95%84%EA%B8%B0%20%ED%9C%B4%EB%8C%80%EC%9A%A9%20%EC%95%84%EA%B8%B0%EB%B3%80%EA%B8%B0%EC%BB%A4%EB%B2%84%20%EC%A0%91%EC%9D%B4%EC%8B%9D%20%EC%8B%9C%ED%8A%B8%20%EC%9C%A0%EC%95%84%20%EC%96%B4%EB%A6%B0%EC%9D%B4%20%EB%B0%B0%EB%84%88.png" alt="" class="se-image-resource">
</a>
</div>
</div>
</div>
</div>
이런식으로 변경되어 버리는 경우가 있다. 심지어 항상 가장 앞에 넣었던게 중간으로 순간이동 하기도 하고… 이러니 기존 스트링으로 검색하면 없다고 뜨는데 실제로는 이미지가 존재하는 상황이다. 결국 업데이트가 안된채 옛날 이미지만 덩그러니 남겨져있게 되는 상황이다. 뿐만 아니라,
1
<!-- Not Allowed Attribute Filtered ( style="" onclick="return false;" data-linktype="img" data-linkdata="{"id" : "SE-d2d13c63-bd17-11ef-9334-3f1e36536be1", "src" : "https://s3.ap-northeast-2.amazonaws.com/insta.a-review.co/public/banner_images/i1r9eq1n/344/20241216/%ED%94%84%EB%A6%AC%ED%8B%B0%EC%98%A4%20%EB%94%94%EC%96%B4%EC%9C%A0%20%EB%B2%A8%EB%B2%B3%20%ED%81%90%EC%96%B4%28%EC%8B%9C%EC%B9%B4%29%ED%8B%B4%ED%8A%B8%204.5g%20%EB%B0%B0%EB%84%88.png", "originalWidth" : "1000", "originalHeight" : "1755", "linkUse" : "true", "link" : "https://www.instagram.com/prittio_official"}") -->
이런 각주가 중간에 뜬금없이 포함되어있는 경우도 있어 이때를 어떻게 처리해야할지 참으로 난감하다. 현재 생각으론, 이미지 링크를 하나로 고정하여 이미지만 변경하여 HTML에 더이상 접근하지 않도록 하는 방식인데… 어렵다 참.
태그된 게시물 좀 주세요
스택오버플로우나 페이스북 커뮤니티나 온갖 곳에 도움을 요청했으나 그 누구도 내게 손길을 내밀지 않는다. 처음 개발을 배울때 니가 겪은 오류는 수 많은 사람들이 겪었던 것이니 찾으면 나온다는데… 거짓말.
회고
한 해의 마무리를 이렇게 하고 싶지 않다.