TIL

203일차(모험 112일차)

haedal-uni 2022. 4. 5. 23:31
728x90

프로젝트

다른 블로그 글들을 보면서 코드를 작성해봤다. 

[Java] WebSocket의 Session 사용 방법(Broadcast)과 웹 채팅 소스 예제

onClose에서 해당 아이디를 지우는 것으로 작성해봤다. (remove 추가)

 

test를 해봤을 때 3명 중 한명이 나가면 나머지 2명은 계속 채팅을 할 수 있었고

나머지 한명도 나갔을 때는 아예 채팅이 불가능했다.

* 여전히 "__님이 방을 나가셨습니다." 는 나오지 않고 있다.

 

그래서 onclose에는 메세지를 입력하는 msgArea에

" 님이 방을 나가셨습니다."를 보내는 코드를 작성해봤다. 

 

 

 

 

이번엔 4명으로 test를 해봤다.

test를 해보니 한명이 나가도 3명이서 채팅을 할 수는 있으나

짧게 진행되다가 종료되었다. 

 

 

그리고 "__ 님이 방을 나가셨습니다" 메세지가 떴다.

 

 

그러나 문제점이 하나 있다.

A, B, C, D 가 채팅에 참여한 상황에서 D가 방을 나갔다고 가정한다.

그러면 모두의 채팅방에 D가 방을 나갔다고 메세지가 띄워져야 하는데

A의 화면에서는 A가 메세지를 전송해야 D가 나갔다는 것을 알 수 있다.

 

A라는 사람이 바로 답을 했다면 D가 나갔다는 것을 알지만

B과 C라는 사람은 D가 나갔다는 사실을 모르고 있다.

 

본인 채팅방에 메세지를 입력해야 알 수 있다.

 

 

일단 팀원에게 issue로 공유를 했다. 


파이썬 프로젝트 정리

그동안 해왔던 프로젝트들을 순서에 맞게 정리했다.

00_~~~.py

01_~~.py

이런 식으로

 

보기 편하게 정리하면서 실행이 아직도 잘 되는지

몇 가지 test하다가 고치게 되었다.

 

 

 

인스타그램 css 수정

오랜만에 인스타 언팔 프로그램을 돌려봤는데 스크롤이 진행이 안되서 

처음엔 스크롤이 문젠가 싶었는데 코드를 다시 살펴보니 title을 크롤링이 되어야

스크롤이 되기 때문에 title이 크롤링이 되지 않는 것 같아서

css 코드를 찾아보니 이 전에 사용했던 css 코드는 적용이 되지 않았다.

→ title의 css 코드를 변경하여 진행

github에 정리 완료!

 

크롬 드라이버 버전에 맞게 다운받은지 몇일 안된 것 같은데

에러가 또 떠서 크롬 브라우저 버전에 맞는 걸로 다운받았다. 

This version of ChromeDriver 에러

 

 

 

네이버 지도 title 크롤링

이 전에 강의를 들으면서 프로젝트에 적용될 수 있는 부분이 있지 않을까 고민하다가

카카오 map api가 보여주는 장소가 제한적이라서 

크롤링을 해서 db를 쌓아보는게 어떨까라는 생각에 작성했던 파일이다.

 

실행 화면

 

MongoDB

 

다음 지도와 네이버 지도 모두 코드를 작성했는데 네이버에서 문제가 생겼다. 

이 전에는 네이버 지도로 db를 구축해서 프로젝트 할 때 예시로 써먹었는데

오늘 확인해보니 크롤링에서 막혔다.

 

이게 아직까지도 왜 안되는 건지 의문이다.

다음 지도는 잘 되는데 왜 네이버는 안되는 걸까...

 

 

 

네이버 지도 검색창이 id 값이 크롬 드라이버를 열 때마다 바뀌는 걸 확인해서

id 값이 아닌 css로 변경했다. 

 

변경 전

search = browser.find_element_by_id("input_search1636621368414") 

변경 후

search = browser.find_element_by_css_selector(".search_box > .input_box>.input_search.ng-pristine.ng-valid.ng-touched")  # find_element_by_name() 함수 사용

 

 

그런데 자꾸 

selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element:

와 같은 에러가 떴다. 

 

iframe 문제인 경우가 있으나 나와는 관련이 없었고 

시간을 늘려도 해결되지 않았다...무슨 문제일까

 

또 크롬 드라이버 창을 최소화 시키면 일부 코드는 동작하지만 

그 이후에 또 동작을 하지 않는다. (에러는 안뜨지만 동작하지 않고 그대로 종료)

 

 

검색창에 키워드를 입력 후 엔터키가 동작을 안해서 다른 방안인 url을 이용하기로 했다.

 

 

#search.send_keys("반려동물 동반 카페")
#ActionChains(browser).key_down(Keys.ENTER).perform()

위 코드는 주석처리 하고 아래와 같이 작성했다.

browser.get("https://map.naver.com/v5/search/반려동물")

 

728x90