개발자
js로 크롤링을 하려고 axios, cheerio 모듈을 이용했습니다. 단순하게 특정 부분 클래스를 따서 로그를 찍어보면 LoadedCheerio { length: 0, options: { xml: false, decodeEntities: true }, _root: <ref *1> LoadedCheerio { '0': Document { parent: null, prev: null, next: null, startIndex: null, endIndex: null, children: [Array], type: 'root', 'x-mode': 'no-quirks' }, length: 1, options: { xml: false, decodeEntities: true }, _root: [Circular *1] }, prevObject: <ref *2> LoadedCheerio { '0': Document { parent: null, prev: null, next: null, startIndex: null, endIndex: null, children: [Array], type: 'root', 'x-mode': 'no-quirks' }, length: 1, options: { xml: false, decodeEntities: true }, _root: [Circular *2] } } 다음과 같이 나옵니다. 질문은 1. 크롤링이 안되는 사이트가 있다면 어떻게 확인할 수 있나요 ? 2. https://m.kinolights.com/title/98065 이 사이트에 크롤링을 연습해보고 싶은데 html 요청시에 추가해줘야 할 헤더값같은게 있을까요 ?
답변 1
1. 크롤링이 안되는 사이트를 확인하는 방법은 다음과 같습니다: -크롤링이 안되는 사이트의 응답 코드를 확인해보세요. 200번대(예: 200 OK)의 응답 코드는 성공적인 요청을 나타내는 반면, 다른 응답 코드는 문제가 발생했음을 나타낼 수 있습니다. -사이트의 로봇 배제 표준인 robots.txt 파일을 확인하세요. 이 파일은 사이트에서 크롤러에 대한 접근 규칙을 정의할 수 있습니다. 만약 해당 사이트에서 크롤링을 제한하는 설정이 있다면, 그에 따라 동작해야 합니다. -사이트의 접근 제한이 있는 경우, 서버 측에서 IP 주소를 차단하는 등의 방식으로 구현될 수 있습니다. 이 경우 VPN 등을 사용하여 다른 IP 주소로 접근해보거나, 크롤링을 허용하는 정책이 있는지 확인할 필요가 있습니다. 2. 특정 사이트에 크롤링을 연습하고자 할 때, 추가해야 할 헤더 값이나 설정은 사이트에 따라 다를 수 있습니다. 일반적으로는 다음과 같은 사항을 고려해야 합니다: - User-Agent 헤더: 일부 사이트에서는 크롤러에 대한 식별을 위해 User-Agent 헤더 값을 확인할 수 있습니다. 필요한 경우, User-Agent 헤더 값을 설정하여 일반적인 브라우저의 요청과 유사하도록 만들어야 할 수도 있습니다. - 쿠키: 사이트에 로그인이 필요한 경우, 로그인 후 발급된 쿠키 값을 요청 헤더에 포함해야 할 수 있습니다. 이를 통해 인증된 사용자로서의 요청을 전송할 수 있습니다. - Referer 헤더: 일부 사이트에서는 Referer 헤더 값을 확인하여 이전 페이지나 리소스의 정보를 확인하는 경우가 있습니다. 필요한 경우, Referer 헤더 값을 설정해야 할 수도 있습니다. 특정 사이트에 대해서는 사이트의 이용 약관, 로그인 또는 인증 절차, 요청 헤더 등을 확인하고 분석해야 합니다. 크롤링을 연습하고자 하는 사이트의 구체적인 요구사항에 따라 필요한 설정을 알아내고, 요청을 보낼 때 해당 설정을 포함시키면 됩니다.
커리어리 AI 봇의 답변을 평가해 주세요!
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
지금 가입하면 모든 질문의 답변을 볼 수 있어요!