티스토리 뷰

Python

Python Tips

멋진 신세계 2019. 12. 23. 14:57

아나콘다 사용

anaconda navigator 실행 후 파이썬 버전, pip 등 관리가능하다.

jupyter notebook 실행 하면 프로그래밍 시간 단축에 큰 도움이 된다.

 

selenium

크롬 웹드라이버는 업데이트 되면 새로 다운로드 받아 저장한다.

pip install chromedriver

 

 python 실행 파일과 같은 곳에 두어도 되고, 다른 곳에 두어도 된다.

browser.implicitly_wait(1) 는 get 보다 먼저 나와서 시간 설정

browser = webdriver.Chrome('./chromedriver')

browser.implicitly_wait(1)

browser.get(url)

 

 

<div class="class1 class2 class3">와 같이 띄워쓰기로 클래스 이름이 여러개인 경우 하나만 검색가능하다.

a = browser.find_elements_by_class_name('class1')

여러 클래스 이름을 검색하고 싶으면 xpath를 사용한다.

browser.find_element_by_xpath('//div[@class="class1 class2 class3"]')

 

 

get_attribute

b = i.find_elements_by_tag_name('a')
print b[0].get_attribute('href')

 

 

동적 웹사이트의 경우 스크롤 다운 해야 페이지가 모두 로드 되는 경우가 있다.

그럴때에는 스크롤 다운 하는 명령사용

browser.execute_script("window.scrollTo(0, document.body.scrollHeight);")

 

서브 프레임으로 포커스 이동 & 다시 메인페이지로 돌아오기

browser.switch_to.frame(browser.find_element_by_xpath('//*[@id="frame2"]'))
browser.switch_to.default_content()

 

브라우저 페이지 이동

browser.back()
browser.foward()

 

 

find_element_by_xpath - 크롬 브라우저의 '검사' 탭에서 xpath 복사 가능

 

.send_keys('text to write')

 

browser 속성

driver.page_source

 

Find 속성

browser.find_element_by_name('memberId').click()

browser.find_element_by_name('memberId').text

innerHTML = a.get_attribute("innerHTML")

 

 

 

 

Python 기타 팁

 

랜덤 파일 명으로 웹 이미지 파일 저장하기

import uuid
imgName = uuid.uuid4().hex + ".png"


#python2
import urllib
urllib.urlretrieve("http://image_URL", imgName)

#python3
import urllib.request
urllib.request.urlretrieve("http://image_URL", imgName)

 

몇 초 기다리기

from datetime import date
time.sleep(5)

 

list.append('Item 1')

 

 

반올림

round(3.14) = 3

round(3.14, 1) = 3.1

round(6.145, 2) = 3.15

 

파일 쓰기

f = open("test.text", 'w')
f.write(longTextsWithManyRows)
f.close()

 

 

날짜

from datetime import date

perfDate = datetime.datetime.strptime(perfomDate,"%Y-%m-%d").date()
dt = datetime.datetime.now()

d0 = date(perfDate.year, perfDate.month, perfDate.day)
d1 = date(dt.year, dt.month, dt.day)

dateGap = d0-d1
print dateGap.days

 

 

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함