이 기사에서는 주로 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!