에러해결/PYTHON

selenium 크롤링 엑셀 다운로드가 안되는 현상

Zziii 2023. 7. 12. 09:50
728x90
반응형

1. 다운로드 동작 확인:

셀레니움 스크립트에서 다운로드 동작이 올바르게 설정되어 있는지 확인하세요. 다운로드 경로가 올바르게 설정되었는지와 다운로드 알림이 비활성화되었는지 확인.

chrome_options.add_experimental_option() 메서드를 사용하여 환경 설정 가능.

 

 

chrome_options.add_experimental_option() 메서드는 ChromeOptions 클래스의 메서드로, Chrome 브라우저를 설정하는 데 사용된다. 이 메서드를 사용하여 다양한 환경 설정을 할 수 있다.

add_experimental_option() 메서드는 두 개의 매개변수를 받는다. 첫 번째 매개변수는 설정의 이름이며, 두 번째 매개변수는 설정 값을 의미한다.

예를 들어, 다음과 같이 add_experimental_option() 메서드를 사용하여 다운로드 설정을 추가할 수 있다.

chrome\_options.add\_experimental\_option("prefs", {

"download.default\_directory": apifp.BIGKINDS\_DOWNLOAD\_PATH, "download.prompt\_for\_download": False,

})

위의 코드에서 "prefs"는 설정의 이름이다. "prefs" 설정은 Chrome 브라우저의 환경 설정을 수정하는 데 사용된다. 두 번째 매개변수는 설정 값으로, "download.default_directory"는 다운로드할 파일의 기본 디렉토리를 설정하고, "download.prompt_for_download"는 다운로드 알림을 비활성화한다.

이와 같이 add_experimental_option() 메서드를 사용하여 ChromeOptions 객체에 다양한 환경 설정을 추가할 수 있다. 이를 통해 다운로드 경로, 알림 설정 등을 조정하여 원하는 다운로드 동작을 구현할 수 있다.

 

 

 

2. 다운로드 설정 수정:

헤드리스 모드에서 파일 다운로드에 도움이 되는 설정 수정을 시도 다운로드 디렉토리를 변경하거나 알림을 비활성화하는 등의 다운로드 관련 환경 설정 변경

 

 

 

3. 사용자 상호작용 모방:

일부 웹사이트에서는 다운로드가 시작되기 전에 사용자 상호작용이 필요하거나 이벤트를 트리거할 수 있다. 헤드리스 모드에서는 셀레니움의 ActionChains 클래스를 사용하여 사용자 상호작용을 모방할 수 있다. 예를 들어, 다운로드 버튼을 클릭하거나 엔터 키를 눌러 다운로드를 시작할 수 있다.

 

 

 

4.비헤드리스 환경 시뮬레이션:

만약 모든 시도가 실패한다면, 임시로 헤드리스 모드가 아닌 일반 모드에서 셀레니움 스크립트를 실행해야 할 수있다. 즉, chrome_options에서 헤드리스 옵션을 주석 처리하거나 제거하여 브라우저를 UI가 표시되는 상태로 실행해야 한다. 이렇게 하면 파일 다운로드 알림을 수동으로 처리할 수 있다.

웹사이트의 동작 방식과 자동 다운로드를 방지하기 위한 보안 조치 등을 고려해야 한다. 일부 웹사이트에서는 자동화된 다운로드를 방지하기 위해 추가적인 검사를 수행할 수 있다.

 

728x90
반응형
let textNodes = document.querySelectorAll("div.tt_article_useless_p_margin.contents_style > *:not(figure):not(pre)"); textNodes.forEach(function(a) { a.innerHTML = a.innerHTML.replace(/`(.*?)`/g, '$1'); });