Python3이 JS에 의해 동적으로 생성된 HTML 웹 페이지를 캡처하는 방법의 예

黄舟
풀어 주다: 2018-05-18 15:51:35
원래의
4639명이 탐색했습니다.

이 기사에서는 주로 JavaScript로 동적으로 생성된 HTML 웹 페이지를 캡처하는 Python3의 기능을 소개하고, JavaScript로 동적으로 생성된 HTML 웹 페이지 요소를 캡처하는 셀레늄 라이브러리를 사용하여 Python3의 관련 운영 기술을 분석하고, 필요한 친구들이 참조할 수 있도록 결합합니다.

이 문서의 예제에서는 Python3이 javascript에 의해 동적으로 생성된 html 웹 페이지를 가져오는 기능을 구현하는 방법을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 세부 사항은 다음과 같습니다.

urllib를 사용하여 웹 페이지를 크롤링하면 웹 페이지의 정적 소스 파일만 읽을 수 있지만 자바스크립트로 생성된 콘텐츠는 캡처할 수 없습니다.

그 이유는 urllib가 즉시 크롤링하고 javascript의 로딩 지연을 기다리지 않기 때문에 페이지에서 javascript에 의해 생성된 콘텐츠를 urllib에서 읽을 수 없기 때문입니다.

자바스크립트로 생성된 내용을 읽는 것이 정말 불가능한 걸까요? 아니요!

여기서 Python 라이브러리인 Selenium을 소개합니다. 이 기사에 사용된 버전은 2.44.0

먼저 설치하세요.

pip install -U selenium
로그인 후 복사

다음은 사용법을 설명하는 세 가지 예입니다.

[예제 0]

Firefox 브라우저 열기
주어진 URL 주소로 페이지 로드

from selenium import webdriver
browser = webdriver.Firefox()
browser.get('http://www.baidu.com/')
로그인 후 복사

【예제 1】

Firefox 브라우저 열기
바이두 홈페이지 로딩
"seleniumhq" 검색
브라우저 닫기

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
browser = webdriver.Firefox()
browser.get('http://www.baidu.com')
assert '百度' in browser.title
elem = browser.find_element_by_name('p') # Find the search box
elem.send_keys('seleniumhq' + Keys.RETURN) # 模拟按键
browser.quit()
로그인 후 복사

【예제 2 】

Selenium WebDriver는 네트워크 프로그램 테스트에 자주 사용됩니다. 다음은 Python 표준 라이브러리 unittest를 사용하는 예입니다.

import unittest
class BaiduTestCase(unittest.TestCase):
  def setUp(self):
    self.browser = webdriver.Firefox()
    self.addCleanup(self.browser.quit)
  def testPageTitle(self):
    self.browser.get('http://www.baidu.com')
    self.assertIn('百度', self.browser.title)
if __name__ == '__main__':
  unittest.main(verbosity=2)
로그인 후 복사

위 내용은 Python3이 JS에 의해 동적으로 생성된 HTML 웹 페이지를 캡처하는 방법의 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿