본문 바로가기

python8

크롤링 에러 requests.exceptions.SSLError: HTTPSConnectionPool 하.. 크롤링 돌려놓고 데이터 확인할려고 했는데 3시간쯤 ? 돌리고 나서 보니까 requests.exceptions.SSLError: HTTPSConnectionPool 에러났다고 멈췄다. sleep도 걸고 했는데...ㅠㅠ 새벽작업을 해야했다... 찾아보니까 크게 2가지로 나뉘는 것 같다. 1. 신뢰할 수 없는 SSL 인증서로 인해 발생 2. 너무 많이 요청해서 네트워크 뻑남 내 경우는 HTTPSConnectionPoll이라고 했으니 2번인 것 같아서, 다시 돌리니까 다시 실행이되었따... 다행이다. 이거 SSL 관련 인스톨 한 것 같은데 내 서버가 아니라서,,ㅠ 만약 1번의 문제라면 다음과 같이 처리하면 된다. import requests from bs4 import BeautifulSoup url =.. 2022. 7. 8.
python iframe 렌더링된 페이지 크롤링 하기 아주 큰 깨달음을 얻은 날이다. 왜 계속 iframe 크롤링 하는데 왜!! 리스트가 비어서 출력될까..? 도대체 뭐가 문젤까.. 싶어서 찾아보면서 한 예시로 네이버 금융을 테스트 해보았다. F12를 누르면 개발자 도구가 나오는데, iframe을 눌러서 검색해보면 이렇게 잡혀있고 해당 부분은 src에 적힌 경로대로 다시 렌더링 되어서 페이지가 만들어지기 때문에 attrs로 title까지 얻을 수는 있겠지만 src 이후부터는 가지고 올 수가 없다. 그래서 이걸 어떻게 하면 가지고 올 수 있을까 싶어서 찾아보다가 Selenium을 쓰면 된다는 후기가 많아서 한 번 해봤다. 사실 이 페이지 크롤링 하려고 Selenium까지 쓸 필요는 없는데 워낙 무겁다보니까 근데 테스트 용으로 한 번 해보았다. 추가적으로 해당.. 2022. 2. 16.
python 3에서 바뀐 것 (출력방식, 문자열 인코딩) python2.xx -> python3.xx로 바뀌면서 바뀐게 많지만 크게 내가 보려고 정리해본다. 1. print 차이 python 2.xx에서는 print "하이하이" 이런 식으로 괄호 없이 출력했는데, python 3.xx에서는 print("하이하이") 이렇게 괄호를 붙여야만 출력되고 에러가 나지 않는다. 2. 저장 방식 python 2에서는 ASCII 방식으로 저장되었는데(UNICODE방식도 지원은 되었으나 별도 설정 필요) python 3에서는 기본 저장 방식이 UNICODE이다. 3. string python 2 에서는 default encoding은 ASCII 이다. python 3 에서는 모든 string은 unicode이고, 기본 encoding은 utf-8 이다. (그래서 문자열 앞에 .. 2022. 2. 14.
파이썬 크롤링 User-Agent 파이썬 크롤링에서 user agent를 학습했다. 참고 영상은 아래처러 나도코딩님의 유트브 강좌이다. https://www.youtube.com/watch?v=yQ20jZwDjTE&t=3661s user agent란? 크롬으로 가령 https://naver.com 으로 들어가서 F12(개발자도구)를 켜면 HTTP 패킷 중 Header에 User-Agent가 위치한다. 사람이 정보를 얻기 위해 웹브라우저를 사용하는데 이 웹 브라우저가 어떤 종류이고 어떤 상태인지 적혀 있는 집약체라고 할 수 있다. 웹브라우저라 하면 IE, Edge, Chrome 등등이 있는데 사람마다 휴대폰으로 들어갈 수도 있고, window 11 버전인 os에서 접속할 수도 있다. 이에 따라 화면이 다르게 보이도록 되어 있기 때문에, 크.. 2022. 2. 9.
파이썬 정규표현식 re 사용 requests에 이어 정규표현식 re 라이브러리를 이용해 보았다. 강의는 다음과 같다. https://www.youtube.com/watch?v=yQ20jZwDjTE&t=3154s 정규표현식을 찾아봤는데, 다양한 정의 중 한 가지 공통된 점이 있었다. 복잡한 문자열을 처리할 때 사용하는 기법으로, 특정 패턴을 가진 문자열이 있는지 여부를 확인할 수 있다는 것이다. 예를 들면 다음과 같다. . (ca.e) : 하나의 문자 의미 > care, cafe, case (0) | caffe(X) ^ (^de) : 문자열 시작 > desk, destination(0) | fade(X) $ (se$) : 문자열을 끝 > case, base(O) | fase (X) .. 등등 정규식은 많다! 간단하게 강의 바탕으로 이.. 2022. 2. 9.
파이썬 크롤링 requests 사용 http 응답코드 확인해보는 테스트를 했다. 참고 영상은 다음과 같다. 나중에 다시 한 번 더 봐야겠다. https://www.youtube.com/watch?v=yQ20jZwDjTE 기본적으로 http 응답이 제대로 왔으면 200을 출력하는데, jupyter notebook으로 확인했을 때는 응답코드 200이 찍혔다. import requests res = requests.get("https://naver.com") print("응답코드 :", res.status_code) # 200이면 정상 강제로 에러코드 생기게 url을 만들어서 응답코드 이상하게 나오도록 해보았다. import requests res = requests.get("http://naver.hello.com") print("응답코드 :.. 2022. 2. 8.
Python Flask Session 유지 및 현재 Login id값 가져오기 Python Flask에서 사용자 회원가입과 로그인을 하는 서버를 구축하였다. 이후 현재 로그인한 계정으로 데이터를 전송하고자 하였는데, 이 때 사용자가 로그인한 id가 필요로 하다. Python Flask에서는 로그인 한 현 상태의 id를 어떻게 가져오는지 알아보던 중, "Session"을 통해 알아낸다고 하였다. 호스트 프로세스 간에 세션을 생성하고 유지, 종료 등을 담당한다. 즉 로그인과 로그아웃, 동기화 같은 서비스를 담당한다는 의미이다. 세션과 관련된 데이터는 서버에 저장이 되는데. 이 때 가장 많이 비교 되는 대상이 쿠키이다. Cookie와 Session의 비교는 아래와 같다. Cookie Session 저장위치 Client (클라이언트의 웹 브라우저가 지정하는 Memory or HDD) Se.. 2021. 5. 29.
Error: connect ECONNREFUSED 해결 Postman에서 AWS EC2 IP를 이용해서 POSTMAN에 send를 했는데 Error: connect ECONNREFUSED 에러가 떴다. 처음에는 POSTMAN error: connect ETIMEDOUT 에러가 떴고 이를 해결하니 위와 같은 에러가 발생한 것이다. 무엇이 문제인지 확인하기 위해 검색해봤는데, Node.js에서 자주 발생하는 문제인 것 같았다. 그래서 나는 내가 쓰고 있는 환경인 AWS와 Postman공식문서를 찾아봤고, 특별한 해답은 없었다. 그러다가 POSTMAN에서 settings에 proxy를 체크 해제하고 진행하라고 해서 해봤는데 local에서는 그렇게 해도 되지만, AWS에 올린 global에서는 해당되지 않았다. 그래서 다시 확인해보니, 문제가 하나 있었다. 내가 만.. 2021. 5. 26.
반응형