Python 웹 페이지 자동 캡 처 예시 설명 실현

배경 설명
최근 에 부 서 를 위해 자동화 테스트 도 구 를 만 들 었 습 니 다.도 구 는 하나의 기능 과 관련 되 어 있 습 니 다.자동화 테스트 를 통 해 생 성 된 html 보고 서 를 캡 처 하여 메 일 본문 으로 html 파일 을 웹 서버 에 업로드 하여 링크 형식 으로 메 일 에 추가 하고 마지막 으로 메 일 을 보 냅 니 다.
임무 난점
이전에 페이지 자동 캡 처 와 관련 된 부분 을 접 한 적 이 없 기 때문에 어떻게 자동 으로 페이지 캡 처 를 하 는 것 이 현지 조사 연구 방향 이 되 었 습 니까?
방안 사고
이 임 무 를 처음 받 았 을 때 현재 의 방안 을 인정 하지 않 았 다.한때 html 보고서 의 내용 을 메 일 본문 에 기록 하면 html 형식 으로 메 일 을 보 낼 수 있다 고 생각 했다.시도 해 보 니 메 일 은 자바 script 이 있 는 html 를 지원 하지 않 습 니 다.따라서 html 를 미리 보고 자동 으로 캡 처 하 는 방안 을 선택 하 였 습 니 다.
프로 그래 밍 언어
python 2.7
사용 방안:
selenium + phantomjs
방안 소개
html 를 자동 으로 미리 보기 하고 캡 처 하 는 데 다음 과 같은 몇 가지 절차 가 있 습 니 다.
1.브 라 우 저 html 열기
2.브 라 우 저 페이지 캡 처
3.캡 처 를 지정 한 위치 에 저장
처음에 필 자 는 이 실현 방안 을 사용 했다.
(1).웹 브 라 우 저 라 이브 러 리 를 사용 하여 기본 브 라 우 저 를 열 고 url 을 표시 합 니 다.

(2).PIL.ImageGrab 라 이브 러 리 를 사용 하여 화면 을 캡 처 합 니 다.

지금까지 필 자 는 html 미리 보기 캡 처 를 받 았 습 니 다.모든 것 이 순 조로 운 것 같 지만 그 다음 에
다음 과 같은 몇 가지 문 제 를 발견 했다.
(1).기본 브 라 우 저 를 열 때 기본 브 라 우 저가 무엇 인지,브 라 우 저가 어떤 상태 에 있 는 지 알 수 없습니다.
(2).브 라 우 저 는 html 를 표시 합 니 다.브 라 우 저 를 열 면 html 를 여 는 동작 이 나타 납 니 다.사용자 가 이때 다른 동작 이 발생 하면 다음 캡 처 에 영향 을 줄 수 있 습 니 다.
(3)화면 캡 처 는 전체 화면 을 캡 처 합 니 다.캡 처 는 html 페이지 본문 을 제외 하고 브 라 우 저 등 현재 화면 에 포 함 된 모든 요 소 를 포함 하여 사용자 의 프라이버시 를 누설 합 니 다.
(4).페이지 가 크 면 페이지 가 상하 로 넘 어 가 는 효과 가 발생 하고 화면 캡 처 는 이 페이지 에 대응 할 수 없 으 며 캡 처 한 보고 서 는 일부분 에 불과 합 니 다.
상술 한 문 제 를 바탕 으로 필 자 는 간단 하고 효과 적 으로 보 이 는 이 방안 을 포기 했다.그리하여
방안 에 대해 심층 적 인 수 요 를 발굴 했다.
(1).브 라 우 저 를 열 려 면 암시 적 으로 호출 해 야 합 니 다.사용 자 는 도구 가 무엇 을 하 는 지 볼 수 없 으 며 오 작 동 을 통 해 도구 에 영향 을 주지 않 습 니 다.
(2)캡 처 는 브 라 우 저 페이지 의 본문 을 대상 으로 다른 불필요 한 정보 가 없 도록 해 야 하고 페이지 의 전체 그림 을 캡 처 해 야 한다.이런 수요 에 따라 필 자 는 일련의 시 도 를 통 해 selenium+phantomjs 를 발견 했다.
python selenium:python 이 브 라 우 저 자동화 테스트 프레임 워 크 selenium 의 확장 입 니 다.selenium 라 이브 러 리 는 selenium 에 포 함 된 대부분의 기능 을 지원 합 니 다.
phantomjs:인터페이스 가 없 는 스 크 립 트 프로 그래 밍 이 가능 한 webkit 브 라 우 저 입 니 다.python selenium 역시 phantomjs 에 대한 지원 을 제공 합 니 다.
이제 모든 것 이 쉬 워 질 것 이다.
(1).python selenium 라 이브 러 리 를 설치 하고 pip 로 최신 버 전 을 빠르게 설치 하 는 것 을 추천 합 니 다.
(2).phantomjs.exe 를 다운로드 하여 환경 변수 path 에 추가 합 니 다.python 설치 디 렉 터 리 루트 디 렉 터 리 에 직접 놓 을 수 있 습 니 다.
(3).테스트 코드 작성

간단하게 코드 설명:

fromselenium importwebdriver     # selenium   webdirver

brower=webdriver.PhantomJS()    #  webdirver.PhantomJS()      phantomjs   ,      phantomjs.exe,    path    phantomjs.exe,    

brower.get(url)           #  get()  ,      。     phantomjs     ,           

brower.maximize_window()      #  phantomjs       

brower.save_screenshot(picName)   #  save_screenshot          ,              ,save_screenshot       

brower.close()           #  phantomjs   ,        ,               phantomjs  
상기 코드 를 실행 한 후에 캡 처 효 과 를 봅 시다.

이상 파 이 썬 이 웹 페이지 자동 캡 처 를 실현 하 는 예제 설명 은 바로 편집장 이 여러분 에 게 공유 한 모든 내용 입 니 다.여러분 께 참고 가 되 고 저희 도 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기