python 파충류 의 selenium 시각 화 파충류 의 실현
주로 앞에서 언급 한 몇 가지 웹 페이지 에 비해 분석 한 파충류 방식 이다.
selenium 파충 류 는 주로 사람의 클릭 조작 을 모 의 한다.
selenium 이 브 라 우 저 를 구동 하고 조작 하 는 과정 을 관찰 할 수 있 습 니 다.
다른 사람 이 당신 의 컴퓨터 를 조종 하 는 것 을 지 켜 보 는 것 과 비슷 합 니 다.다른 사람 이 당신 의 컴퓨터 를 원 격 으로 사용 하 는 것 과 비슷 합 니 다.
물론 selenium 에 도 인터페이스 모드 가 있 습 니 다.
쾌속 입문
selenium 기본 소개:
selenium 은 완전한 웹 응용 프로그램 테스트 시스템 입 니 다.
테스트 녹화(selenium IDE),작성 및 실행(Selenium Remote Control)포함
테스트 와 병행 처리(Selenium Grid).
Selenium 의 핵심 Selenium Core 는 JSUnit 에 기반 을 두 고 있 습 니 다.
완전히 자 바스 크 립 트 로 작성 되 었 기 때문에 자 바스 크 립 트 를 지원 하 는 모든 브 라 우 저 에 사용 할 수 있 습 니 다.
selenium 은 실제 브 라 우 저,자동화 테스트 도 구 를 모 의 하여 다양한 브 라 우 저 를 지원 합 니 다.
파충 류 는 주로 자 바스 크 립 트 렌 더 링 문 제 를 해결 하 는 데 쓰 인 다.
python 으로 파충 류 를 쓸 때 주로 selenium 의 Webdriver 를 사용 합 니 다.
# selenium
pip install selenium
#
# Selenium.Webdriver
from selenium import webdriver
print(help(webdriver))
:
PACKAGE CONTENTS
android (package) blackberry (package) chrome (package)
common (package) edge (package) firefox (package)
ie (package) opera (package) phantomjs (package)
remote (package) safari (package) support (package) webkitgtk (package)
# PhantomJS,
#PhantomJS WebKit JavaScript API,
# Web ,
# 、 Web :Dom ,CSS ,JSON 。
#PhantomJS 、 、 ,
구 글 브 라 우 저 구동 다운로드 주소 대응 하 는 버 전 번호,chrome 주소 표시 줄 입력chrome://version/ 자신의 Chrome 버 전 보기
저 는 anaconda 를 사용 해서 다운로드 해서 anaconda 3\\Scripts 폴 더 에 버 리 면 됩 니 다.
pycharm,VScode 와 같은 다른 id 라면 anaconda 의 통합 python 을 불 러 올 수 있 습 니 다.
단순 테스트
from selenium import webdriver
# #
browser1 = webdriver.Chrome()
browser2 = webdriver.Firefox()
# #
browser1.get("http://www.baidu.com")
print(browser1.page_source)
#
browser1.close()
원소 포 지 셔 닝페이지 를 조작 하려 면 먼저 페이지 요 소 를 선택 하 십시오.
비교적 흔히 볼 수 있 는 8 가지 요소 포 지 셔 닝 방식 은 다음 과 같다.
원 소 를 찾 습 니 다.
다 중 요 소 를 찾 습 니 다.
포 지 셔 닝 방식 설명
find_element_by_id
find_elements_by_id
원소 id 로 포 지 셔 닝
find_element_by_name
find_elements_by_name
요소 이름 으로 위치 추적
find_element_by_xpath
find_elements_by_xpath
xpath 경 로 를 통 해 포 지 셔 닝
find_element_by_link_text
find_elements_by_link_text
전체 하이퍼링크 텍스트 로 포 지 셔 닝
find_element_by_partial_link_text
find_elements_by_partial_link_text
부분 하이퍼링크 텍스트 로 포 지 셔 닝
find_element_by_tag_name
find_elements_by_tag_name
태그 이름 으로 위치 추적
find_element_by_class_name
find_elements_by_class_name
클래스 이름 으로 포 지 셔 닝
find_element_by_css_selector
find_elements_by_css_selector
css 선택 기 를 통 해 포 지 셔 닝
더 상세 한 포 지 셔 닝 방식 은 참고 할 수 있다.
페이지 조작
1.폼 채 우기
#
user = drive.find_element_by_name("LoginForm[username]")
user.send_keys(username)
#
pwd=drive.find_element_by_id("LoginForm_password")
pwd.send_keys(password)
#
drive.find_element_by_class_name("login_btn").click()
2.창 핸들쉽게 말 하면 핸들 은 브 라 우 저 위 에 있 는 모든 창 표시 줄 의 유일한 표지 입 니 다.
#
handles = drive.window_handles
# 2
drive.switch_to.window(handles[2])
""" """
#
driver.close()
# 1
drive.switch_to.window(handles[0])
time.sleep(random.uniform(2,3))
3.url 불 러 오기 및 가 져 오기
#url
drive.get(url)
# url
currentPageUrl = driver.current_url
4.쿠키 처리
drive.get("http://www.baidu.com")
cookie = {'name':'foo','value':'bar'}
drive.add_cookie(cookie)
drive.get_cookies()
대기 모드현재 많은 사이트 에서 Ajax 기술 을 채택 하고 있다.
웹 페이지 요소 가 언제 완전히 불 러 올 지 확인 할 수 없습니다.
그래서 웹 요소 의 선택 이 어렵 습 니 다.
이 때 는 대기 설정 이 필요 합 니 다(웹 페이지 로 딩 이 완료 되 기 를 기다 리 고 있 습 니 다)
selenium 은 두 가지 대기 방식 이 있 습 니 다.
현식 대기
암시 적 기다 림
1.명시 적 대기
명시 적 기다 림 은 조건 부 트리거 기다 림 이다.
설정 한 조건 이 이 루어 질 때 까지 계속 실 행 됩 니 다.
시간 초과 설정 이 가능 합 니 다.시간 초과 요소 가 불 러 오지 않 으 면 이상 을 던 집 니 다.
from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
drive = webdriver.Chrome()
url = 'http://www.baidu.com/'
drive.get(url)
try:
WebDriverWait(self.driver,10).until(EC.presence_of_element_located(By.ID,"LoginForm[username]")) #
except:
print('%s '% loc)
이상 코드 로드'http://www.baidu.com/페이지"LoginForm[username]"요소 로 id 를 찾 습 니 다.
시간 초과 10 초 설정,webDriverWait 기본 값 은 500 ms 입 니 다.요소 가 존재 하 는 지 확인 합 니 다.
selenium 은 대기 시간 을 표시 하 는 데 내 장 된 방법 을 제공 합 니 다.
에 자리잡다,...conditions 클래스 중 다음 표 참조
내장 방법
기능.
title_is
현재 페이지 의 title 이 예상 한 내용 과 같 는 지 판단 합 니 다.
title_contains
현재 페이지 의 title 에 예상 문자열 이 포함 되 어 있 는 지 판단 합 니 다.
presence_of_element_located
어떤 요소 가 dom 트 리 에 추가 되 었 는 지 판단 합 니 다.
이 원소 가 반드시 보 이 는 것 은 아니다
presence_of_all_element_located
dom 트 리 에 최소 1 개의 요소 가 존재 하 는 지 판단 합 니 다.
visibility_of_element_located
어떤 요소 가 보 이 는 지 판단 합 니 다.
visibility_of
어떤 요소 가 보 이 는 지 판단 합 니 다.
invisibility_of_element_located
어떤 요소 가 dom 트 리 에 존재 하지 않 거나 보이 지 않 는 지 판단 합 니 다.
text_to_be_present_in_element
요소 에 있 는 text 가 예상 한 문자열 을 포함 하고 있 는 지 판단 합 니 다.
text_to_be_present_in_element_value
요소 의 value 속성 이 예상 문 자 를 포함 하고 있 는 지 판단 합 니 다.
frame_to_be_available_and_switch_to_it
이 frame 이 전환 할 수 있 는 지 여 부 를 판단 합 니 다.가능 하 다 면,
True 로 돌아 가 고 전환 하지 않 으 면 false 로 돌아 갑 니 다.
element_to_be_clickable
어떤 요소 가 보이 고 enable 인지 판단 합 니 다.
staleness_of
dom 트 리 에서 어떤 요소 가 제거 되 기 를 기다 리 고 있 습 니 다.
element_to_be_selected
어떤 요소 가 선택 되 었 는 지 판단 합 니 다.드 롭 다운 목록 에 사 용 됩 니 다.
element_located_to_be_selected
어떤 요소 가 선택 되 었 는 지 판단 합 니 다.드 롭 다운 목록 에 사 용 됩 니 다.
element_selection_state_to_be
어떤 요소 의 선택 상태 가 예상 에 부합 되 는 지 판단 합 니 다.
element_located_selection_state_to_be
어떤 요소 의 선택 상태 가 예상 에 부합 되 는 지 판단 합 니 다.
alert_is_present
페이지 에 alert 상자 가 있 는 지 판단 합 니 다.
2.암시 적 대기
암시 적 기다 림 은 어떤 요 소 를 찾 으 려 고 시도 할 때 바로 발견 하지 못 하면 고정 시간 을 기다 리 는 것 이다.
socket 시간 초과 와 유사 합 니 다.기본 설정 은 0 초 입 니 다.즉,최 장 대기 시간 에 해당 합 니 다.
브 라 우 저 인터페이스 에서 직관 적 인 느낌 은:
웹 페이지 로 딩 이 끝 날 때 까지 기 다 립 니 다.× 다음 으로 변 함)시 계속 실행,
웹 페이지 로 딩 이 설정 대기 시간 을 초과 하여 오 류 를 보고 합 니 다.
사용 방법
from selenium import webdriver
drive = webdriver.Chrome()
url = 'http://www.baidu.com/'
# 10
drive.implicitly_wait(10)
drive.get(url)
user = drive.find_element_by_name("LoginForm[username]")
3.스 레 드 휴면time.sleep(time)는 비교적 자주 사용 하 는 스 레 드 휴면 방식 이다.
위험 을 피하 기 위해 서 나 는 개인 적 으로 무 작위 휴면 을 비교적 좋아한다.
time.sleep(random.uniform(4,5))
확장 프로그램 로드
#
chrome_options.add_extension(extension_path)
#
#download.default_directory: profile.default_content_settings.popups: 0
prefs = {'profile.default_content_settings.popups': 0, 'download.default_directory':tmp_path}
chrome_options.add_experimental_option('prefs', prefs)
python 파충류 의 selenium 시각 화 파충류 의 실현 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 selenium 시각 화 파충류 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 부탁드립니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
WDM(WebDriverManager) 시작하기자동화 테스트(브라우저 자동화)에 대해 이야기할 때마다 몇 가지 사항이 있어야 합니다. 브라우저(시스템 경로에 있어야 함). 드라이버 실행 파일(시스템 경로에 있어야 함), 드라이버 실행 파일 버전은 브라우저 버전과...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.