inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

남박사의 파이썬 기초부터 실전 100% 활용

셀레니움 headless chrome으로 사이트 접속시 Access Denied 문제가 발생합니다.

8057

yoon

작성한 질문수 17

1

기존의 셀레니움 방식의 크롤링이 아닌,

이미 제가 사용하고 있는 크롬창에서 셀레니움으로 크롤링을 하고 있습니다.

아래 코드를 추가하니 크롬창 재사용이 가능하더라구요.

options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")

headless chrome으로 웹사이트를 띄워놓고 원격으로 디버깅을 하는데,

이상하게 특정 사이트에 접속이 안되는 문제가 생깁니다.

headless chrome 모드를 끄고 일반적인 셀레니움으로만 사용하면

해당 사이트에 접속이 가능한데,

headless chrome을 적용하기만 하면

아래와 같은 메시지와 함께 접속제한이 생기네요.

Access Denied

You don't have permission to access "http://www.coupang.com/" on this server."

Reference #18.57da2317.1583518355.74a9211

혹시 이런 경우가 한번 발생하면, 해당 사이트는 headless chrome으로 접속을 계속 못하게 되는건가요??

구글링과 해외 개발자 커뮤니티 등 닥치는대로 해결방법을 찾고 적용해보는데 도통 해결이 되지않아 이렇게 질문 올립니다.

인터넷에 알아보니 user-agent를아래와 같이 변경하라고 해서 적용해봤지만

유독 쿠팡 사이트만 계속 Access Denied가 뜹니다.

아래는 사용중인 크롬창에서의 headless chrome 테스트용 코드입니다.

from selenium.webdriver.chrome.options import Options
from selenium import webdriver
import time

path = '/Users/yoons/Documents/chrome/chromedriver'
options = Options()

options = webdriver.ChromeOptions()
options.add_argument('headless')
options.add_argument('window-size=1920x1080')
options.add_argument('lang=ko_KR')
options.add_argument(f'user-agent=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.87 Safari/537.36')
options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")

driver = webdriver.Chrome(path, options=options)

TEST_URL = 'https://www.google.com/search?ei=ZspgXu77K8KnoATe3qCgCQ&q=basketball&oq=basket&gs_l=psy-ab.3.0.0l10.274346.277887..278777...2.3..0.337.1834.1j6j1j2......0....1..gws-wiz.....0..0i71j0i67j0i273.cDhByzynOnk'
TEST_URL2 = 'https://www.coupang.com/'

driver.get(TEST_URL)
title_test = driver.find_elements_by_css_selector('#rso > div > div > div > div > div > div.r > a > h3')[0].text
time.sleep(2)

driver.switch_to.window(driver.window_handles[-1])
driver.get(TEST_URL2)

print(title_test)

python 웹-크롤링

답변 1

0

남박사

일단 말씀하신 코드를 제 컴퓨터의 윈도우 환경에 맞게 수정해서 돌려봤습니다만 큰 문제점을 발견하지 못했습니다. 질문하신 헤드레스 브라우저를 판독하여 거부를 하는 사이트는 좀 더 디테일하게 분석을 해봐야 하지만 검색해보신것 처럼 대부분 유저에이전트 값으로 판단하는 경우가 많아서 유저 에이전트만 수정되도 해결되는 사이트들이 많습니다.

물론 이런 방식으로 해결되지 않는 경우에는 일반 브라우저와 헤드레스사이의 차이점을 직접 분석하셔서 해결해야 하는 부분이기도 합니다.

from selenium.webdriver.chrome.options import Options
from selenium import webdriver
import time

# path = '/Users/yoons/Documents/chrome/chromedriver'
options = Options()

options = webdriver.ChromeOptions()
options.add_argument('headless')
options.add_argument('window-size=1920x1080')
options.add_argument('lang=ko_KR')
options.add_argument(f'user-agent=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.87 Safari/537.36')
# options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")
# driver = webdriver.Chrome(path, options=options)
driver = webdriver.Chrome(chrome_options=options)

TEST_URL = 'https://www.google.com/search?ei=ZspgXu77K8KnoATe3qCgCQ&q=basketball&oq=basket&gs_l=psy-ab.3.0.0l10.274346.277887..278777...2.3..0.337.1834.1j6j1j2......0....1..gws-wiz.....0..0i71j0i67j0i273.cDhByzynOnk'
TEST_URL2 = 'https://www.coupang.com/'

# driver.get(TEST_URL)
# title_test = driver.find_elements_by_css_selector('#rso > div > div > div > div > div > div.r > a > h3')[0].text
# time.sleep(2)

# driver.switch_to.window(driver.window_handles[-1])
driver.get(TEST_URL2)

# print(title_test)
print(driver.page_source)

위의 코드가 올려주신 코드를 제가 환경에 맞게 수정해서 실행해본 코드이며 해당 코드는 문제없이 정상 동작 되었습니다.

38강 = 연산자 더하고 빼기

0

60

2

주석처리

0

117

1

함수의 파라미터값 msg

0

155

1

강의자료 이미지 안나옴

0

239

3

강의자료 질문 두번째

0

165

3

강의자료 관련 질문

0

116

1

파이썬 예외 처리 try / except 파일 처리 코드가 실행이 안됩니다.

0

235

1

소수 너무 어려워요

0

245

1

imagefont 함수 사용

0

239

1

pylint

0

357

1

add 함수 문의 ㅠㅠ

0

283

1

형식 문의드립니다.

0

209

1

변수 명을 왜 src, tar로 하셨는지 궁금합니다.

0

602

1

숫자야구 코드를 짜 봤는데 뭔가 이상합니다.

0

253

1

zsh: command not found: pylint

0

269

1

텔레그램 봇 만들기 코드 실행이 안됩니다 박사님..ㅠ

0

546

1

질문드립니다.

1

374

2

list.reverse() 출력에 대해서 질문있습니다.

1

433

1

데코레이터 함수 및 동작시간 질문입니다.~

1

323

2

opencv 사용하면서 궁금한점 (해상도)

1

781

1

질문드립니다.

1

299

1

아래 오류가 뜨면서 vscode가 컴파일이 되지 않는데.. 혹시 왜이럴까요?

1

445

1

크롤링안되는 현상 문의 드립니다.

1

421

1

파이썬 크롤링 관련 문의

1

277

1