정적 크롤링 - 자주 나는 오류
정적 크롤링 자주 나는 오류
1. 브라우저로 접속할 때는 되는데 requests 로는 접속이 안되는 경우
해결방법: Header 를 확인하여 user-agent, cookie, accept, referer 값을 사용
브라우저도 내부적으로는 HTTP 통신을 하기 때문에 브라우저처럼 HTTP 요청을 날리면 된다.
2. 쿠키가 어디서 설정되는지
해결방법: request 를 확인하거나 브라우저에서 복사해서 사용
브라우저는 쿠키를 name, value, domain, path, expires 등으로 관리한다. name과 value는 쿠기의 이름과 쿠기의 값이고, domain과 path는 특정 도메인이나 경로를 사용할 때만 특정 쿠키를 쓰게 만든다. expries는 시간이 지나면 로그인이 자동으로 풀리게 하는것으로 쿠키를 지워버린다.
서버에서 쿠키를 보내는 모습
3. 매 요청때마다 값이 자꾸 바뀌는 경우
해결방법: CSRF 직접 파싱해서 사용 GET으로 토큰을 받아오기
CSRF는 Cross-site Request Forgery로 어떤 사이트를 함부로 실행시키는 것이다.
- 예 : 이메일을 열었는데 갑자기 결제가 되어버린다.
- 원인 : 이메일 본문에 결제하는 링크가 iframe, img 등으로 연결되어 있는 것
- 방지 : CSRF 토큰을 넣는다, referer 를 체크한다 등
4. 소스보기를 클릭 했는데 원하는 값이 없는 경우
해결방법: xhr 연결을 확인
소스보기를 클릭 했는데 원하는 값이 없는 경우는 서버가 데이터를 즉각 주지 않는 즉, HTML (빈껍데기) 만 주고 실제 내용물은 따로 패키징해서 주는 형태이다. 페이스북 같이 페이지 바뀔 때 새로고침 안되고 무한스크롤 되는 형태 등이 이런 구조이다.