특정 사이트 웹 스크래핑(크롤링) 차단 문제 해결
VBA
작성자
에이b
작성일
2022-06-29 22:18
조회
3068
안녕하세요.
특정 사이트를 스크래핑하고자 며칠째 시도해보고 있는데 도무지 해결되지 않아 도움을 구하고자 글을 남깁니다.
첨부된 파일은 시도해보았던 3가지 방법에 대한 모듈이 포함되어 있습니다.
시도한 방법은 총 3가지 입니다.
- XMLHTTP 객체를 활용하여 GET 메소드 호출
이 방법은 맨 처음 실행할 때는 정상적으로 수행되지만, 반복적으로 수행할 경우 403(Forbidden) 오류가 발생하네요..ㅠ
아무리 헤더를 추가해서 사람이 하는 것 처럼 시도해보아도 해결되지를 않네요.
- Internet Explorer 객체를 활용
2022년 6월 15일 부로 인터넷 익스플로러의 서비스가 종료되면서, 이제 서서히 여러 사이트에서 지원을 종료하는 것 같습니다.
User-Agent 헤더 속성을 사용해봤지만, 회피가 불가능하네요..ㅠ
- Selenium을 통한 Chrome 브라우저 활용
헤더 속성을 아무리 추가해도 사이트 측에서 스크래핑으로 인식해서 그런지 아래와 같이 나오네요..ㅠ
가장 가능성 있는 것은 1번 방법인 것 같은데, 아무리 해도 403 오류를 피하기가 어려운 것 같습니다.
스크래핑 고수님들의 조언을 구합니다..ㅠ
감사합니다.
전체 18,480
번호 | 카테고리 | 제목 | 작성자 | 작성일 | 추천 | 조회 |
[📚진짜쓰는 실무엑셀] IT/오피스 '1위' 베스트셀러! 엑셀 공부, 이 교재로 마스터하세요! (313)
![]() ![]() |
![]() ![]() |
2022.02.03 | 573 | 601692 | ||
공지사항 | 문서서식 |
⭐ [더 나은 커뮤니티 문화를 위한 Q&A 글 작성 규칙] ⭐
(197)
오빠두엑셀
|
2021.10.28
|
추천 310
|
조회 35052
|
![]() ![]() |
2021.10.28 | 310 | 35052 |
78443 | 함수/공식 |
New 조건 맞는 값 찾기
![]() ![]() ![]() |
![]() |
2025.04.30 | - | 82 |
78441 |
New 표와 글씨가 깨짐
![]() ![]() |
![]() |
2025.04.30 | - | 57 | |
78440 | 문서서식 |
New 셀 사용자지정서식 10.0억 표시 방법
(1)
답변완료
![]() |
![]() |
2025.04.30 | - | 58 |
78436 | 기능/도구 |
New 파워포인트 내 엑셀시트의 리본메뉴 활성화방법은?
(2)
![]() |
![]() |
2025.04.30 | - | 67 |
78431 | VBA |
New IF 조건문 기초 질문 드립니다.
![]() ![]() |
![]() |
2025.04.30 | - | 127 |
78428 | 기능/도구 |
New 보이는 범위의 셀로만 붙여넣기하는 법
![]() ![]() |
![]() |
2025.04.29 | - | 124 |
78424 | 함수/공식 |
New 생년월일 6자리로 나이 계산 어떻게 하나요?
(8)
![]() |
![]() |
2025.04.29 | - | 131 |
78421 | 함수/공식 |
New INDEX + MATCH 함수 문의
(2)
![]() |
![]() |
2025.04.29 | - | 128 |
78420 | 함수/공식 |
New 여러시트 중에 같은내용을 찾기
![]() ![]() ![]() |
![]() |
2025.04.29 | - | 94 |
78419 | 문서서식 |
New 크기가 다른 셀에서의 필터 걸기 부탁드립니다 !
![]() ![]() |
![]() |
2025.04.29 | - | 83 |
78418 | 함수/공식 |
New [퀴즈] 텍스트 압축/변형하기
![]() ![]() ![]() |
![]() |
2025.04.29 | - | 176 |
78416 | VBA |
New 시트보호된 상태에서 매크로 작동시 Range 클래스 중 Insert 메서드에 오류가 있습니다.
![]() ![]() |
![]() |
2025.04.29 | - | 70 |
78414 | 파워쿼리/피벗 |
New 다른 엑셀 파일에서 필요한 값만 불러오는 방법
![]() ![]() |
![]() |
2025.04.29 | - | 80 |
78413 | 함수/공식 |
New 경과주 구하는 수식 문의
(1)
![]() |
![]() |
2025.04.29 | - | 78 |
78411 | 문서서식 |
New 숫자 문자인식 숫자변환하는 법
![]() ![]() |
![]() |
2025.04.29 | - | 90 |
78410 | VBA |
New [매크로관련] 특정셀 자동증가하며, 연속출력할수 있을까요?
![]() ![]() |
![]() |
2025.04.29 | - | 106 |
78408 | 문서서식 |
New 숫자 서식 변경하기
![]() ![]() |
![]() |
2025.04.29 | - | 82 |
78407 | 기능/도구 |
New 원드라이브 MICROSOFT 365 사용중 공동작업시 필터
![]() ![]() |
![]() |
2025.04.29 | - | 70 |
78402 | 함수/공식 |
New 괄호안의 시간:분 데이터를 분으로 합산하는 방법 질문드립니다.
![]() ![]() ![]() |
![]() |
2025.04.28 | - | 84 |
78400 | 함수/공식 |
New 2차배열에서 countif
![]() ![]() |
![]() |
2025.04.28 | - | 109 |
78399 | 함수/공식 |
New 한달의 마지막주 스케쥴 작성시 전주까지의 휴무 누적 합계 구하는 방법이 궁금합니다.
![]() ![]() ![]() |
![]() |
2025.04.28 | - | 72 |
78398 | VBA |
New VBA 매크로 여러 엑셀 파일에서 사용
(1)
![]() |
![]() |
2025.04.28 | - | 102 |
78396 | 함수/공식 |
New 직원별로 근태 합계를 확인하고 싶어요
![]() ![]() |
![]() |
2025.04.28 | - | 135 |
78395 | 함수/공식 |
New 특정 단어를 포함한 행 골라내는 방법에 대해 문의드립니다.
(3)
답변완료
![]() |
![]() |
2025.04.28 | - | 95 |
78392 | 함수/공식 |
New 도와주세요... ( 특정값에 해당하는 반 번호 찾아 목록만들기)
![]() ![]() ![]() |
![]() |
2025.04.28 | - | 103 |
78389 | 기능/도구 |
New 오빠두LIVE 196회 - 엑셀 프로젝트 관리 _ 일,주 바꾸는법
![]() ![]() |
![]() |
2025.04.28 | - | 91 |
78387 | 함수/공식 |
New 엑셀 관련 질문입니다. SUM과 IFERROR 입니다 ㅠ
(6)
![]() |
![]() |
2025.04.27 | - | 135 |
78382 |
New Excel 추세선 이상
![]() ![]() |
![]() |
2025.04.27 | - | 107 | |
78381 | 함수/공식 |
New 같은 이름 N 번째 데이터
![]() ![]() ![]() |
![]() |
2025.04.27 | 1 | 142 |
78380 | 함수/공식 |
New On Error Resume Next 문구를 삽입하는 위치는?
(2)
답변완료
![]() |
![]() |
2025.04.27 | - | 112 |
@에이b 님 오빠두 게시글이 구글에서 검색이 잘 되기 때문에 이런 민감할 수 있는 내용은 답변 안 하려고 했는데 힌트만 드리도록 하겠습니다. 아래 참조할 만한 게시글들이 있으니 살펴보시기 바랍니다. 국내외 막론하고 대부분 파이썬 관련 글들이 많은데, 잘 연구해보시면 VBA에서 어떻게 하면 될지 파악이 되실 겁니다.
https://blog.naver.com/shino1025/221305380045
셀레니움 웹 크롤링
자동화를 허용하지 않은 사이트를 자동화로 접속하는 것 자체가 리스크가 있는 행위입니다. 그 위험을 감수하고도 꼭 필요한 경우에는 위 글에 소개된 여러 방법을 참고해 보세요. 저는 Selenium & ChromeDriver 이용해서 VBA에서 사용합니다. 크롤링용 브라우저를 여는 방식 대신 열려있는 크롬을 원격으로 컨트롤하는 방식을 사용하면, 사람이 사용하는 것과 구분되지 않아서 캡차가 뜨지 않습니다. 소개된 여러 방식 중에 이 방식을 추천합니다. 물론 자동화인지 사람인지 감별하는 기술이 사이트마다 다르고 그 수준도 다르기 때문에 모든 사이트를 다 뚫을 수 있다고는 장담할 수 없습니다.
@나는나 님 답변 감사합니다.
보내주신 내용을 구글링을 통해서도 알게되었는데, 파이썬으로는 이미 열려있는 크롬을 통제하는 것이 가능한 것 같은데 이걸 VBA로 적용하고자 하니 어려운 것 같네요..ㅠ
@에이b 님 참고로, 첨부하신 예제파일의 세 번째 셀레니움 스크립트를 보니 하단에
이렇게 하셨는데 그러면 빈 칸만 출력됩니다.
Text가 아니라 이렇게 속성 값을 불러와야 합니다.