A, 셀레늄 개념
셀레늄은 브라우저 기반 자동화 모듈이며
셀레늄 파충류 연관성 :
동적으로로드 된 데이터 1. 편리
2. 아날로그 로그인
기본 사용
셀레늄을 설치 PIP
브라우저 드라이버를 가져옵니다
드라이버 다운로드 링크 구글 주소 : http://chromedriver.storage.googleapis.com/index.html
셀레늄의 기본 사용
에서 셀레늄 수입 webdriver 에서 시간 가져 오기 잠 #은 브라우저 객체 인스턴스화 브로 = webdriver.Chrome을 (executable_path = ' ./chromedriver.exe ' ) # 요청 보내기 bro.get를 ( ' https://www.jd.com/ ' ) SLEEP ( 2 ) #의 위치 탭 SEARCH_TAG bro.find_elements_by_xpath = ( ' // * [ID = "키"@] ' ) [0] search_tag.send_keys ( ' 맥 프로 ' ) # 위치 검색 버튼 BTN = bro.find_element_by_xpath ( ' // * / DIV / DIV [2] / 버튼 [ID는 = "검색"@] ' ) btn.click () #의 JS注入 bro.execute_script ( ' window.scrollTo (0, document.body.scrollHeight) ' ) 절전 ( 3 ) bro.quit ()
셀레늄 기반의 데이터를 동적으로 크롤링로드
발 셀레늄 오기 webdriver 에서 시간 가져 SLEEP 에서 LXML 오기 etree의 #의 브라우저 오브젝트의 예 브로 = webdriver.Chrome (executable_path = ' ./chromedriver.exe ' ) bro.get ( ' http://125.35.6.84:81/xk/ ' ) 절전 ( 1 ) # 현재 브라우저가 데이터를 대응하는 모든 페이지를 표시 page_text = bro.page_source all_page_text = [page_text] 에 대한 I 의 범위 (1,4 ) : next_page_tag = bro.find_element_by_xpath ( ' // * [ID = "pageIto_next"@] ' ) next_page_tag.click () 절전 ( 1 ) all_page_text.append (bro.page_source) 대한 page_text 에서 all_page_text : 나무 = etree.HTML (page_text) li_list = tree.xpath ( ' // * / 리 [ID = "gzlist"@] ' ) 에 대한 리튬 의 li_list : 제목 = li.xpath ( ' ./dl/a/text () ' ) 인쇄 (제목) 절전 ( 3 ) bro.quit ()