In [1]:
from selenium import webdriver
In [2]:
webdriver.__file__
Out[2]:
'C:\\Users\\BORAM\\Anaconda3\\lib\\site-packages\\selenium\\webdriver\\__init__.py'
In [ ]:
 
In [3]:
driver=webdriver.Chrome('..\chromedriver')
In [4]:
driver.get("http://naver.com") #페이지 방문
In [5]:
driver.find_element_by_id('query') # elements는 결과의 집합을 리스트로 보여줌
Out[5]:
<selenium.webdriver.remote.webelement.WebElement (session="7829e38626b5b90e74f8a781388dc1ef", element="0.9211824626393375-1")>
In [6]:
tag_query=driver.find_element_by_id('query') 
In [7]:
tag_query.click()
In [8]:
tag_query.send_keys('AskDjango')
In [9]:
tag_query.submit() #fomr tag 면 가능함.
In [10]:
driver.find_elements_by_class_name('sh_blog_title')
Out[10]:
[<selenium.webdriver.remote.webelement.WebElement (session="7829e38626b5b90e74f8a781388dc1ef", element="0.6391972297187019-1")>,
 <selenium.webdriver.remote.webelement.WebElement (session="7829e38626b5b90e74f8a781388dc1ef", element="0.6391972297187019-2")>,
 <selenium.webdriver.remote.webelement.WebElement (session="7829e38626b5b90e74f8a781388dc1ef", element="0.6391972297187019-3")>,
 <selenium.webdriver.remote.webelement.WebElement (session="7829e38626b5b90e74f8a781388dc1ef", element="0.6391972297187019-4")>,
 <selenium.webdriver.remote.webelement.WebElement (session="7829e38626b5b90e74f8a781388dc1ef", element="0.6391972297187019-5")>]
In [11]:
# for tag in driver.find_elements_by_class_name('sh_blog_title'):
for tag in driver.find_elements_by_css_selector('.sh_blog_title'):
    print(tag.text,tag.get_attribute('href'))
Askdjango) 파이썬 기본문법 정리 18) 파이썬 클래스... http://myjorney.tistory.com/26
Askdjango) 파이썬 기본문법 정리3)python 파이썬 들여쓰기... http://myjorney.tistory.com/4
Askdjango) 파이썬 기본문법 정리1_파이썬의 코드 실행방법... http://myjorney.tistory.com/1
Askdjango) 파이썬 기본문법 정리)2.파이썬의 기본... http://myjorney.tistory.com/2
Askdjango) 파이썬 기본문법 정리 17) 파이썬 file... http://myjorney.tistory.com/23

bs4로 위와 동일한 효과를 낼 수도 있음!!

In [12]:
from bs4 import BeautifulSoup
html=driver.page_source # 자바스크립트가 적용된 페이지소스를 보여줌!!!!!
soup=BeautifulSoup(html,'html.parser')
In [13]:
for tag in soup.select('.sh_blog_title'):
    print(tag.text,tag['href'])
Askdjango) 파이썬 기본문법 정리 18) 파이썬 클래스...  http://myjorney.tistory.com/26
Askdjango) 파이썬 기본문법 정리3)python 파이썬 들여쓰기...  http://myjorney.tistory.com/4
Askdjango) 파이썬 기본문법 정리1_파이썬의 코드 실행방법...  http://myjorney.tistory.com/1
Askdjango) 파이썬 기본문법 정리)2.파이썬의 기본...  http://myjorney.tistory.com/2
Askdjango) 파이썬 기본문법 정리 17) 파이썬 file...  http://myjorney.tistory.com/23
In [14]:
#driver.close() # 창끄기
In [15]:
from getpass import getpass

username=input("Username:")
password= getpass('password:')
driver=webdriver.Chrome('..\chromedriver')

try:
    driver.get("https://nid.naver.com/nidlogin.login")
    tag_id=driver.find_element_by_name('id')
    tag_id.send_keys(username)
    tag_pw=driver.find_element_by_name('pw')
    tag_pw.send_keys(password)
    tag_pw.submit() #tag_id.submit() 으로도 가능함!!ㅜ
finally:
    #driver.close()
    pass
Username:hvofak5s
password:········

모바일로 접속하면 크놀링 쉽다!!

In [17]:
driver.get("https://m.cafe.naver.com/askdjango")
In [19]:
driver.find_elements_by_css_selector('a[class*=WriteArticle]')[0].click()
In [20]:
from selenium.webdriver.support.ui import Select
select=Select(driver.find_element_by_name('menuid'))
In [21]:
select.select_by_visible_text('파이썬 자동화 연습 게시판')
In [23]:
driver.find_element_by_name('subject').clear()
driver.find_element_by_name('subject').send_keys('테스트입니다')
In [24]:
iframe= driver.find_element_by_tag_name('iframe')
driver.switch_to_frame(iframe)
In [25]:
tag_body=driver.find_element_by_tag_name('body')
In [26]:
tag_body.click()
In [27]:
tag_body.send_keys('''
크롤링 연습입니다.
''')
In [28]:
driver.switch_to_default_content() # 쓰기 부분만 iframe 으로 되어 있음. 빠져나와야 함.
In [29]:
driver.find_element_by_css_selector('[class*=Submit]').click()
In [30]:
driver.close()
In [ ]: