반응형
반응형
예제로 배우는 파이썬 - Selenium 사용하기 

1. Selenium 소개

Selenium은 웹 브라우져를 컨트롤하여 웹 UI 를 Automation 하는 도구 중의 하나이다. Selenium은 Selenium Server와 Selenium Client가 있는데, 로컬 컴퓨터의 웹 브라우져를 컨트롤하기 위해서는 Selenium Client 를 사용한다 (여기서는 Selenium 3 사용). Selenium Client는 WebDriver라는 공통 인터페이스(Common interface)와 각 브라우져 타입별(IE, Chrome, FireFox 등)로 하나씩 있는 Browser Driver로 구성되어 있다.

2. Selenium 설치

Selenium을 설치하기 위해서는 먼저 아래와 같이 pip 을 사용하여 Selenium Client 모듈을 설치한다.

pip install selenium

다음으로 사용할 브라우저별 Selenium 드라이버를 설치한다. 드라이버가 설치된 후, 해당 드라이버의 경로를 실행 PATH에 넣어 준다. 아래는 대표적인 브라우저별 설치 링크이다. 특별한 이유가 없다면 Selenium이 가장 잘 동작하는 Firefox를 사용하는 것이 좋다.

3. Selenium 사용법

Selenium을 사용하기 위해서는 먼저 selenium.webdriver 모듈을 import 한 후, webdriver.Firefox() 를 호출하여 브라우져를 실행시킨다. 만약 크롬을 사용할 경우 webdriver.Chrome()을 호출하고, Edge를 사용할 경우 webdriver.Edge()을 호출한다.

브라우져를 띄운 상태에서 특정 웹사이트로 이동하기 위해서는 아래와 같이 browser 객체의 get() 메서드를 사용한다.

1
2
3
4
5
6
from selenium import webdriver
 
browser = webdriver.Firefox()
# browser = webdriver.Chrome()
 
browser.get("http://python.org"

Selenium은 웹페이지 내의 특정 요소(들)을 찾는 많은 메서드들을 제공하고 있는데, 이들은 보통 한 요소를 리턴하는 find_element_*() 혹은 복수 요소를 리턴하는 find_elements_*() 메서드로 구분된다. 자주 사용되는 몇가지 검색 메서드를 예를 들면, 특정 태그 id 로 검색하는 find_element_by_id(), 특정 태그 name 속성으로 검색하는 find_element_by_name(), CSS 클래스명으로 검색하는 find_element_by_class_name(), CSS selector를 사용해 검색하는 find_element_by_css_selector() 등이 있는데, 예상되는 결과가 복수이면 find_element_* 대신 find_elements_* 를 사용한다.

검색 결과 리턴되는 객체는 FirefoxWebElement 와 같이 *WebElement 타입의 객체가 되는데, 리턴된 요소는 WebElement 타입 타입의 속성이나 메서드를 사용하여 데이타를 얻거나 특정 행위를 할 수 있다. 예를 들어, WebElement의 text는 요소 내의 문자열을 리턴하고, tag_name 은 해당 요소의 태크명 (예: a, span) 을 리턴하며, clear() 메서드를 호출하면 text 입력 영역을 초기화하고, click() 메서드를 호출하면 해당 요소를 클릭한다.

아래 예제는 python.org 웹사이트를 방문해서 상단 메인 메뉴 문자열을 출력하고, PyPI 메뉴를 클릭한 후 5초 후에 브라우저를 종료하는 예이다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
from selenium import webdriver
import time
 
browser = webdriver.Firefox()
browser.get("http://python.org")
 
menus = browser.find_elements_by_css_selector('#top ul.menu li')
 
pypi = None
for m in menus:
    if m.text == "PyPI":
        pypi = m
    print(m.text)
 
pypi.click()  # 클릭
 
time.sleep(5) # 5초 대기
browser.quit() # 브라우저 종료








...


반응형
반응형

[AI] 네이버, 개인화 상품 추천 시스템 ‘에이아이템즈’ 공개


http://www.bloter.net/archives/288812


네이버가 인공지능 기반의 콘텐츠 추천 시스템 에어스에 이어, 개인화 상품 추천 시스템인 ‘에이아이템즈(AiTEMS, Ai+items)’를 자체 개발해 모바일 쇼핑판에 시범 적용했다고 9월1일 알렸다.


에이아이템즈는 쇼핑, 검색, 뉴스, 네이버TV, 네이버스포츠 등 여러 네이버 서비스 도메인에서 활동한 이용자 개인의 행동 데이터를 기반으로, 관심사나 취향을 분석해 상품을 추천하는 인공지능 추천 시스템이다.


에이아이템즈는 네이버의 여러 서비스에서 이뤄지는 사용자의 행동 이력과 상품의 메타 정보를 분석해 상품으로 추천한다. 상품메타정보란 상품명, 카테고리명, 가격, 판매처명, 상품 아이디 등의 텍스트 정보와 상품 이미지 정보 등을 말한다. 이미지 정보는 텍스트 정보와 결합해 활용될 수 있도록 컨볼루션 신경망(CNN) 기술을 바탕으로 벡터로 변환 후 사용된다. 네이버에서 사용자의 구매 경험이 없어도 네이버의 여러 서비스를 이용한 이력이 있다면 이용자 개인에 적합한 상품을 추천할 수 있다. 예컨대 사용자가 네이버에서 ‘야구장’을 검색하거나 관련 영상 등을 시청했다면 에이아이템즈는 사용자가 야구에 관심이 높다고 판단하고 에이아이템즈 추천 쇼핑 영역에서 다양한 야구 용품을 추천하는 식이다.


추천에 활용하는 사용자 이력은 쇼핑 관련 로그와 그 외 검색, 콘텐츠 클릭 및 구독 활동 로그 등을 포함한다. 네이버는 “개인정보 이슈가 없도록 동의받은 범위 안에서 활용한다”라고 알렸다.


네이버는 모바일 쇼핑판 첫 화면 중하단에 에이아이템즈가 적용된 ‘에이아이템즈 추천 쇼핑(베타)’ 영역을 구성했으며, 모바일 쇼핑홈과 모바일 쇼핑 MY 탭을 통해서도 해당 서비스를 제공한다. 에이아이템즈는 현재 패션 분야에 선 적용되었으며, 점차 범위를 확대해나갈 예정이다.







...

반응형
반응형

웹보안, ICT기초 동영상 강좌


https://opentutorials.org/course/1863


 실전웹보안 코스는 아시아웹방화벽 1위 기업인 Penta Security Systems 신입사원과 비전공자(마케팅,기획등)들의 ICT와 보안에 대한 이해를 높이기위해 만들어졌습니다. 

 컴퓨터의 역사와 구조 통신과 웹보안까지 거의 전 분야에 대한 스터디가 있었으나 후반 웹보안부터 녹화를 하게되어 이번 코스에는 웹보안부분만 다루게 됩니다. 이후 빠진 부분에 대한 학습이 있으면 추가로 공개를 할 예정입니다.

 참여자들이 사전 제시된 주제에 대해 하나씩 조사, 발표하고 김덕수CTO가 개념정리 및 추가설명하는 방식으로 이루어져 있습니다. 일방적인 설명보다 오히려 여러분들의 눈높이에  가까우리라 생각됩니다.  기술이 실제 적용되고 실용화되어 있는 현장의 생생한 목소리를 직접들을 수 있는 흔치 않는 기회가 될 것입니다.  

 웹서비스는 날로 증가하고 있으나 웹보안에 대한 전반적인 사회적 무지와 소홀로 인해 개인정보의 유출등과 같은 사건이 너무나 빈번하게 일어나고 있습니다. 결국 우리 역시 그 잠재적 피해자가 될 수 있습니다.  사내교육프로그램을 대외적으로 공개하는 이유가 여기에 있습니다. 



...


반응형
반응형

[생활코딩] Blockchain - 코인, 채굴


https://opentutorials.org/course/2865/16812



초보자를 위한 Blockchain 강좌 시리즈




...

반응형
반응형
생활코딩 오프라인 수업 라이브 - 작심40시간


https://opentutorials.org/module/696










...

반응형
반응형

“컴퓨터가 당신의 이메일을 읽을까 봐 걱정하는 것은 개가 당신의 벗은 몸을 볼까 봐 걱정하는 것이나 마찬가집니다.”

컴퓨터가 당신의 데이터를 보관하고 있다면, 그것이 폭로될 위험은 늘 존재한다. 프라이버시 정책이 내일 당장 바뀌어서 당사자의 명시적 동의 없이도 과거의 데이터를 새로이 이용할 수 있게 허용할 수도 있다. 또 해커나 범죄자가 데이터를 훔쳐갈 수도 있다. 당신의 데이터를 갖고 있는 기관이 새롭고 공개적인 방식으로 그것을 사용할 수도 있고, 다른 조직에 팔아넘길 수도 있다. FBI는 데이터 주인에게 국가안보서신을 제시할 수 있는 반면, 개에게 주인의 벗은 모습을 설명하게 만들 수 있는 법정은 이 세상에 없다. 

『당신은 데이터의 주인이 아니다』 P. 203






...

반응형

+ Recent posts