무효 클릭 IP 추적 중...
파이썬/파이썬 기초

[python 기초] selenium add_arguement()를 이용한 headless 및 여러가지 기능 배우기

꼬예 2020. 5. 27.

 

안녕하세요 이번시간에는 셀레니움을 이용하는데 있어 유용한 기술들을 소개하겠습니다.

여러분들에 상황에 맞게 필요한 기능들을 추가하시어 사용하시면 되겠습니다.

 

 1  option 값 객체 설정 

1
2
3
4
5
6
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
 
chrome_options = Options()
# selenium에 여러가지 옵션 값을 추가하기위한 준비
 
cs

chrome_options 라는 임의의 변수를 지정. 이 변수가 추후에 우리가 원하는 기능을 추가할때 사용되는 변수이다.

 

 

 2  여러가지 옵션 값 (headless, mute-audio 등) 

 

 1  headless 

1
2
3
4
5
6
7
8
9
10
11
12
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
 
 
chrome_options = Options()
 
chrome_options.add_argument(“--headless”)
 
driver = webdriver.Chrome(executable_path ='C:/python_study/chromedriver/chromedriver.exe',options = chrome_options)
 
 
 
cs

headless 기능은 셀레니움 특성상 브라우저가 뜨면서 작동되기 때문에 이러한것이 번거로운 분들 위한 기능입니다.

위의 코드와 같이 chrome 드라이버에 option 값을 더해주해주면 headless 기능이 작동이 됩니다. 

 

* 위의 내용이 낯설거나 이해가 안되시는 분들 아래 링크를 보고 와주세요!

[파이썬 기초] - [python 기초] 셀레니움(firefox,IE,chrome 이용) 설치 및 사용법

 

 

 2  음소거  

1
2
3
4
5
6
7
8
9
10
11
12
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
 
 
chrome_options = Options()
 
chrome_options.add_argument(“--mute-audio”)
 
driver = webdriver.Chrome(executable_path ='C:/python_study/chromedriver/chromedriver.exe',options = chrome_options)
 
 
 
cs

음소거기능은 셀레니움을 이용하여 특정 사이트를 크롤링할때 소리가 나는경우 해당 소리를 꺼주는 기능입니다.

 

예를 들어 여러분이 유튜브의 댓글을 크롤링을 하려고 한다고 합시다. 이때 영상이 켜지면서 소리가 나게되는데 이 음소거 기능을 이용하시면 소리를 끄고 작업을 할 수 있게 됩니다.

 

 

 3  그래픽 카드 작동 해제 

1
2
3
4
5
6
7
8
9
10
11
12
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
 
 
chrome_options = Options()
 
chrome_options.add_argument(“disable-gpu”)
 
driver = webdriver.Chrome(executable_path ='C:/python_study/chromedriver/chromedriver.exe',options = chrome_options)
 
 
 
cs

 

해당기능은 불필요한 그래픽카드 기능을 제거함으로써 셀레니움 작동 속도를 높여줍니다.

 

 

 

 

 4  USER-AGENT 값 입력 

1
2
3
4
5
6
7
8
9
10
11
12
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
 
 
chrome_options = Options()
 
chrome_options.add_argument(“User_Agent: Mozilla/5.0 \(Windows NT 6.1\) AppleWebKit/537.36 \(KHTML, like Gecko\) Chrome/41.0.2228.0 Safari/537.36 ”)
 
driver = webdriver.Chrome(executable_path ='C:/python_study/chromedriver/chromedriver.exe',options = chrome_options)
 
 
 
cs

서버는 크롤러가 들어와서 본인들의 정보를 긁어가는것을 싫어합니다.

그렇기때문에 서버에서는 크롤러가 들어왔는지 실제 사람이 들어왔는지 확인하기 위해 특정 정보들을 확인하는데요. 이 중 주로 확인하는 것이 user-agent값입니다. 

서버를 속이기 위해서 우리는 임의로 user-agent값을 이와 같이 입력 해줘야 합니다.

 

(특히 headless 기능을 쓰게된다면 headless를 사용한다는 것이 서버 기록에 다 남습니다. headless를 쓰시려면 이 기능은 필수로 넣어줘야 후에 만에하나 발생할 수 있는 서버 차단을 막을 수 있습니다.)

 

 

 

 5  해당 국가 언어 값 입력 

1
2
3
4
5
6
7
8
9
10
11
12
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
 
 
chrome_options = Options()
 
chrome_options.add_argument(“lang=ko_KR“)
 
driver = webdriver.Chrome(executable_path ='C:/python_study/chromedriver/chromedriver.exe',options = chrome_options)
 
 
 
cs

 

여러분이 해외 사이트에 들어갔을때 자동으로 언어가 변경 되는 경험을 해보신적 있을겁니다. 

이건 서버에서 해당 언어의 설정을 보고 자동으로 바꿔주는것인데요.

크롤러에 접속할시 이러한 언어 설정이 없습니다. 

 

대부분의 사이트는 이러한 부분까지 체크를 하지는 않으나 이 부분도 차단의 원인이 될 수 있으니 참고 바랍니다.

 

 

 6  윈도우 창 크기변경 


1
2
3
4
5
6
7
8
9
10
11
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
 
 
 
driver = webdriver.Chrome(executable_path ='C:/python_study/chromedriver/chromedriver.exe')
 
driver.set_window_size(1920,1280# 원하는 윈도우 사이즈로 변경
 
driver.minimize_window()  # 최소화 크기
driver.maximize_window()  # 최대화 크기
cs

 

크롤링을 할때 특정 홈페이지들은 브라우저의 크기에 따라 html 값들이 변경되는 경우가 있습니다.

이럴경우에는 브라우저의 크기를 특정 크기로 고정시켜줘야 크롤링할때 편한데요. 

 

그때 사용되는 코드 입니다.

원하는 사이즈로 크기를 고정시키는 법과 브라우저의 크기를 최소화/최대화 시키는 방법입니다.

 

 

  • 트위터 공유하기
  • 페이스북 공유하기
  • 카카오톡 공유하기
이 컨텐츠가 마음에 드셨다면 커피 한잔(후원) ☕

댓글