반응형

**2023년 제10회 소프트웨어(SW) 개발보안 경진대회 개최 안내**

미래의 SW 개발자인 대학(원)생을 대상으로 'SW 개발보안'을 널리 알리고 활성화시키고자 한국인터넷진흥원(KISA)에서 「2023년 제10회 소프트웨어(SW) 개발보안 경진대회」를 개최합니다.

이번 대회는 '소개딩으로 열어가는 안전한 디지털 세상'을 주제로 진행되며, Java 또는 Python 중 개발 언어를 선택하여 안전하게 SW를 개발하는 대회입니다.

참가 자격은 국내 대학에 소속된 재학 중인 대학생·대학원생으로 이루어진 팀으로, 일반대학(4년제), 전문대학(2~3년제), 사이버대학 포함, 1인~4인 이내 팀 구성이 가능합니다.

참가 방법은 개발 기획서 작성 및 제출이며, 참가 신청은 6월 19일(월) 10시부터 7월 31일(월) 18시까지 KISA 홈페이지에서 할 수 있습니다.

주요 일정은 다음과 같습니다.

* 접수기간: 2023년 6월 19일(월) 10시 ~ 7월 31일(월) 18시
* 대회 설명회: 2023년 7월 5일(수)
* 예선 발표: 2023년 8월 7일(월)
* 본선 사전 설명회: 2023년 8월 9일(수)
* 해커톤 본선 및 시상식: 2023년 8월 17일(목) ~ 18일(금), 무박 2일

시상 내역은 다음과 같습니다.

* 시상: 행정안전부장관상(대상, 최우수상) 6점 등 총 12점
* 상금: 총 2,450만원 상당

자세한 내용은 KISA 홈페이지를 참조하시기 바랍니다.

* KISA 홈페이지: https://kisa.or.kr

많은 관심과 참여 부탁드립니다.

자세한 내용은 아래 링크(배너)를 클릭해주세요.

반응형
반응형

언젠가 부터 파이썬 Selenium 을 돌리는데 아래 경고 메시지가 표시되기 시작했다.

DeprecationWarning: find_element_by_* commands are deprecated. Please use find_element() instead

이 경고 메시지는 Selenium 이 4.* 으로 업데이트 되면서 그동안 우리가 잘 써오던 driver.find_element_by_id(), find_element_by_css_selector() 등이 deprecated 됐다. 쉽게 말해 문법이 바뀌어서 다른 방법을 적용해야 한다.

 

우선 import 부터 하자

from selenium.webdriver.common.by import By

 

각 변경된 내용은 아래와 같다.

driver.find_element_by_id("element_id")
driver.find_element(By.ID, "element_id")

driver.find_element_by_name("element_name")
driver.find_element(By.NAME, "element_name")

driver.find_element_by_tag_name("element_tag_name")
driver.find_element(By.TAG_NAME, "element_tag_name")

driver.find_element_by_css_selector("element_css_selector")
driver.find_element(By.CSS_SELECTOR, "element_css_selector")

driver.find_element_by_class_name("class_name")
driver.find_element(By.CLASS_NAME, "class_name")

driver.find_element_by_link_text("element_link_text")
driver.find_element(By.LINK_TEXT, "element_link_text")

driver.find_element_by_partial_link_text("element_partial_link_text")
driver.find_element(By.PARTIAL_LINK_TEXT, "element_partial_link_text")

driver.find_element_by_xpath("element_xpath")
driver.find_element(By.XPATH, "element_xpath")

 

그리고 driver.find_elements_* 를 사용하던 경우는 아래와 같이 s 만 더 붙여주면 된다.

driver.find_elements_by_id("element_id")
driver.find_elements(By.ID, "element_id")

driver.find_elements_by_name("element_name")
driver.find_elements(By.NAME, "element_name")

driver.find_elements_by_tag_name("element_tag_name")
driver.find_elements(By.TAG_NAME, "element_tag_name")

driver.find_elements_by_css_selector("element_css_selector")
driver.find_elements(By.CSS_SELECTOR, "element_css_selector")

driver.find_elements_by_class_name("class_name")
driver.find_elements(By.CLASS_NAME, "class_name")

driver.find_elements_by_link_text("element_link_text")
driver.find_elements(By.LINK_TEXT, "element_link_text")

driver.find_elements_by_partial_link_text("element_partial_link_text")
driver.find_elements(By.PARTIAL_LINK_TEXT, "element_partial_link_text")

driver.find_elements_by_xpath("element_xpath")
driver.find_elements(By.XPATH, "element_xpath")

 

기존 find_element_by_* 이 방식도 당분간은 계속 사용해도 되지만, 언젠가는 사용이 중지되어 에러가 나게 될 것이니

검색한 김에 수정해보자.

반응형
반응형

어떠한 이유(?)로 chromedriver 를 사용하면서 proxy 를 사용해야만 할 때가 있다.

 

proxy 를 왜 사용하는지는 별도로 검색해보시길 ^^;;

 

구글 검색을 통해 여러가지 해보았지만, 아래 내용으로만 성공을 했다.

 

내가 사용한 python 버전은 3.7 이다.

 

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

chromedriver_autoinstaller.install(True)


PROXY = "proxy-server-ip:proxy-server-port"

options = webdriver.ChromeOptions()
options.add_argument('--proxy-server=http://%s' % PROXY)

driver = webdriver.Chrome(options=options)

driver.get('https://icanhazip.com/')

 

공개된 무료 proxy server 가 많으니 찾아서 적용해보기 바란다.

 

 

모든 proxy server 가 모두 다 잘 적용되는 것은 아니니 여러 서버를 테스트를 해봐야 한다.

 

그리고 쉽게 사라지고 또 새로운 서버가 생겨나니 주기적으로 확인해야 한다.

 

아니면 아예 proxy server 리스트를 크롤링해서 적용하는 방법도 있겠다.

 

반응형
반응형

파이썬에 chromedriver-autoinstaller 를 적용한 후 갑자기 에러가 나서 사용을 못하는 경우가 발생했다.

 

PermissionError: [Errno 13] Permission denied 가 발생해서 보니 chromedriver_autoinstaller.install() 에서 시작되어

chromedriver.exe 의 권한없음으로 에러가 난 것이다.

 

최근 크롬이 버전업 되면서 발생한 것으로 생각된다.

Traceback (most recent call last):
  File "C:\Users\test\Desktop\test\test.py", line 14, in <module>
    chromedriver_autoinstaller.install()
  File "C:\Users\test\AppData\Local\Programs\Python\Python39\lib\site-packages\chromedriver_autoinstaller\__init__.py", line 15, in install
    chromedriver_filepath = utils.download_chromedriver(cwd)
  File "C:\Users\test\AppData\Local\Programs\Python\Python39\lib\site-packages\chromedriver_autoinstaller\utils.py", line 202, in download_chromedriver
    zip_file.extract(chromedriver_filename, chromedriver_dir)
  File "C:\Users\test\AppData\Local\Programs\Python\Python39\lib\zipfile.py", line 1616, in extract
    return self._extract_member(member, path, pwd)
  File "C:\Users\test\AppData\Local\Programs\Python\Python39\lib\zipfile.py", line 1687, in _extract_member
    open(targetpath, "wb") as target:
PermissionError: [Errno 13] Permission denied: 'C:\\Users\\test\\AppData\\Local\\Programs\\Python\\Python39\\lib\\site-packages\\chromedriver_autoinstaller\\91\\chromedriver.exe'

 

 

해결방법은 의외로 간단하다.

 

chromedriver_autoinstaller.install()

 

대신에

 

chromedriver_autoinstaller.install(True)  로 True 만 적용해주면 된다.

 

True 를 적용해주면 현재 파이썬이 실행되는 폴더에 자동으로 최신버전이 이름이 된 폴더가 생성되면서 그 폴어 안에 크롬드라이브의 최신버전이 다운로드 되면서 적용이 된다.

 

처음부터 다 다시 세팅해야 하나 걱정했는데 다행이다.

반응형

+ Recent posts