티스토리 뷰

1. 가상환경

파이썬 버전이나 정보들을 분리하여 필요할때 가져다 쓰기 위해, 각각을 독립적으로 만들고 이를 가상환경이라고 한다.

 

- venv 활용

docs.python.org/ko/3/library/venv.html

 

venv — 가상 환경 생성 — Python 3.9.2 문서

venv — 가상 환경 생성 소스 코드: Lib/venv/ venv 모듈은 자체 사이트 디렉터리를 갖는 경량 《가상 환경》을 만들고, 선택적으로 시스템 사이트 디렉터리에서 격리할 수 있도록 지원합니다. 각 가

docs.python.org

원하는 폴더의 위치에서 "venv + 가상환경이름"을 통해 사용

 

- cd와 Scripts

cd를 통해 가상환경속의 Scripts 폴더로 이동

 

- activate이용(안된다면 \.activate활용)

이후 Scripts폴더에서 activate를 실행시켜 가상환경을 작동 즉, 가상환경에 들어간다.

 

2. 가상환경에서 셀레니움 설치

 

- 설치 코드 : pip install selenium

- 셀레니움 활용 웹 브라우저 활용(크롬으로 활용한다면)

chromedriver.chromium.org/downloads

 

Downloads - ChromeDriver - WebDriver for Chrome

WebDriver for Chrome

chromedriver.chromium.org

다음 사이트에 접속해 본인이 사용하고 있는 chrome 버전에 맞춰 다운로드 받고, 압축을 풀어서, selenium파일에 넣어준다.

- 이후, google.py를 만들어 본격적 코딩 시작

 

3. 본격

selenium-python.readthedocs.io/getting-started.html

 

2. Getting Started — Selenium Python Bindings 2 documentation

2.2. Example Explained The selenium.webdriver module provides all the WebDriver implementations. Currently supported WebDriver implementations are Firefox, Chrome, IE and Remote. The Keys class provide keys in the keyboard like RETURN, F1, ALT etc. from se

selenium-python.readthedocs.io

- Chrome을 활용한 웹드라이버를 열어주기

위의 사이트에서 코드를 긁어와 복사해주고 간략화시킴

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver = webdriver.Chrome()
driver.get("http://www.python.org")
# assert "Python" in driver.title
# elem = driver.find_element_by_name("q")
# elem.clear()
# elem.send_keys("pycon")
# elem.send_keys(Keys.RETURN)
# assert "No results found." not in driver.page_source
# driver.close()

=>이후, 터미널에서 cd selenium을 통해 가상환경을 열어주고 python google.py(현재 코드를 작성하고있는 selenium안의 파이썬 파일명)을 작성

=> www.python.org/로 이동하게 되며 "크롬이 자동화된 테스트 소프트웨어에 의해 제어되고 있습니다"라고 써있는 것을 확인할 수 있음(drive.get("주소")에서 주소가  www.python.org/로 되어있기에)

 

-구글에서 이미지를 찾아보기

Chrome 웹브라우저를 불러온 위의 코드를 활용

elem = driver.find_element_by_name("q")
#검색창을 찾는 코드
elem.send_keys("동국대학교")
#원하는 것을 검색(키보드 입력값 작성)
elem.send_keys(Keys.RETURN)
#엔터키를 누르는 코드

find_element_by_name사용

drive.find.element_by_name("q")

=> 검색창을 찾는 코드를 작성하려면 경로를 찾아주는 name을 활용해 drive.find.element에서 (우리는 검색창을 사용할 것이기에) 검색창 name(q인것을 블럭지정된 곳에서 확인가능)을 입력해줘야함

=> google 사이트의 html을 F12를 통해 왼쪽 창단의 화살표를 누르고 검색창을 눌러주면 해당 내용(검색창)에 해당하는 html내용 파악가능

=> 이렇게 검색창의 html을 봐서 name이 q로 정의된것을 파악가능

 

이후 실행을 시켜보면, 

 

동국대학교 이미지로 제어됨

 

- 동국대학교 이미지 다운받기

 

>> 여러개 이미지를 찾기

>>그 중에서 0번째 요소 이미지를 클릭을 하기

 

driver.find_elements_by_css_selector(".rg_i.Q4LuWd")[0].click()
#F12를 통해 이미지의 class를 확인 후 복붙
#class 앞에 .을 찍어주면 해당 class를 갖는 요소를 "선택"하는 것
# .click()를 활용해 요소선택후 클릭까지 진행
# #elements를 활용해서 이미지 여러개 -> 그중 하나만 [0]번째만 선택

첫 번째 이미지 선택까지한 화면

>>이미지를 다운받기

- 선택창에서 큰 이미지를 선택후, 다운로드 받는 과정이 필요

이미지 태그를 위한 class 찾기, src활용한 이미지 주소확인

stackoverflow.com/questions/45215992/how-to-get-img-src-in-string-in-selenium-using-python에서 

driver.find_element_by_id("idFOO").get_attribute ("src") 코드를 활용해서 이미지 주소를 불러와줌

 

stackoverflow.com/questions/3042757/downloading-a-picture-via-urllib-and-python에서 

import urllib.request urllib.request.urlretrieve("http://www.gunnerkrigg.com//comics/00000001.jpg", "00000001.jpg")를 활용해서 복붙

 

time.sleep(3)
imgurl = driver.find.element_by_css_selector(".n3VNCb").get_attribute("src")
urllib.request.urlretrieve(imgurl, "test.jpg")

 

이후 생성된 test.jpg파일 확인가능!

 

'파이썬 > 파이썬 응용' 카테고리의 다른 글

데스크톱 앱 만들기  (0) 2021.03.27